内容分发网络 (CDN) 是现代互联网架构的基石,通过快速有效地提供内容来改善用户体验。CDN 已成为企业必不可少的工具,利用缓存内容和全球分发来满足广大受众的需求。虽然 CDN 有很多优势,包括降低延迟和提高可用性,但事实上 CDN 也不是一刀切的解决方案。在本文中,我们将探讨 CDN 的局限性,分析 CDN 不足的关键领域,并深入了解其解决方案。
CDN 的有效性:静态内容与动态内容
过去,CDN 的主要功能是缓存静态内容并将其高效地交付给最终用户。“可缓存”的概念是指不经常更改且可以存储以供快速访问的内容。示例包括图像、样式表或预先录制的视频。
另一方面,不可缓存或动态内容是经常更改或对个人用户唯一的内容。示例包括实时视频会议、游戏或个性化网页。
如今,40% 的在线流量由动态内容组成,CDN 也为适应这一新现实做出了自己的努力。其中包括添加边缘计算功能以在边缘生成动态内容!
静态内容与动态内容之战,让我们深入了解以下更多细节:
静态内容 - Netflix 电影
以 Netflix 上的一部热门电影为例。同一部电影文件提供给全球数百万用户。它是一个静态文件,CDN 可以缓存它,从而快速交付到各个位置。
内容的长度不是 CDN 的主要问题,内容的性质才真正反映出某些内容是否可以缓存。
动态内容 - 在线游戏
想象一下视频游戏比赛。您角色的所有动作和移动都是实时发生的。您按下按钮,您的角色会做出相应的动作。没有预定义的动作集。
因此,它无法预先存储这些内容。在这种情况下,CDN 的有效性会降低,因为它是为处理静态内容而不是实时动态内容而设计的。
CDN 仍然可以帮助处理动态内容!
当最终用户请求动态内容时,CDN 必须将请求传递给原始服务器;高 RTT 可能会增加显著的延迟,特别是当原始服务器距离 CDN 的边缘服务器和最终用户都很远时。
为了缓解这种情况,他们通过缩短 TLS 握手过程来传递请求。即使 CDN 中动态内容的使用仍然受到很大限制,此功能也能提供更灵敏的用户体验。
对于像 Zoom 这样处理大量动态内容的服务,使用 CDN 可能不是最佳选择。事实上,对动态内容有大量需求的大型公司可能会利用点对点连接,完全绕过传统的 CDN。
CDN 仅支持 HTTP(S)
CDN 主要支持 HTTP(超文本传输协议)进行内容传输。HTTP 被广泛使用并且非常适合 Web 内容,但并不是所有应用程序的最佳选择。
TCP(传输控制协议)是另一种较低级别的协议,它将数据流分解为数据包、跟踪丢失的数据包并确保可靠的数据传输。
TCP /UDP上使用专有协议的应用程序,CDN 无法保护其流量或加速其性能 - 因此它不是此类应用程序的合适解决方案。
CDN 中 HTTP 的限制
对于某些公司来说,HTTP 可能过于繁重或昂贵。这些公司可能需要 CDN 无法支持的定制 TCP 协议。
这就是为什么这是一个重大限制:
- CDN 无法支持 TCP:由于 CDN 专门设计用于接受 HTTP 请求,因此它们无法支持定制的 TCP 请求。
这种限制可能会导致公司必须构建自己的基础设施来提供网络,从而完全避免使用 CDN。
克服这一限制并利用专有协议的一种方法是使用 WebSockets。大多数 CDN 都支持 WebSockets,并提供了一种通过单个长期连接实现全双工通信通道的方法,可用于满足更加定制化的通信需求。
CDN 在分发本地内容方面效率较低
本地内容是指针对特定地理区域或地区的数据或信息。在某些情况下,企业可能主要服务于本地受众,其内容可能不需要全球分发。
在这里,CDN 的全球架构不再具有优势。
本地新闻网站
想象一下,一个主要服务于某个城市或小地区的本地新闻网站。内容与当地人口最相关,几乎不需要在全球范围内分发。
在这种情况下,CDN 的全球分布只会增加不必要的复杂性和成本。
本地 CDN 与全球 CDN
某些地区有本地 CDN,例如澳大利亚、中国或俄罗斯。这些本地 CDN 不属于高端 CDN 类别,可能无法提供同等级别的服务。
但是,如果您的服务主要是本地服务,并且您的大部分内容不需要全球覆盖,那么本地 CDN 更合适。另一方面,全球 CDN 不是一个好的选择,因为它主要用于为全球内容提供服务。
CDN 的缺点
我们了解到,CDN 是现代网络基础设施的重要组成部分,但它们也存在缺点,而且这个列表还没有结束。
下面探讨了使用 CDN 的一些主要缺点:
成本
实施和维护 CDN 的成本可能非常高,尤其是对于中小型企业而言。
这笔费用不仅包括基本订阅费,还包括数据传输费、超额费用和最低承诺等隐性成本。
这些成本可能会使 CDN 服务对预算有限的小型企业或网站吸引力下降。更糟糕的是,构建、维护和优化 CDN 的成本可能更高,尤其是如果需要进行大量定制的话。
服务地点
如果您的受众集中在 CDN 提供商没有服务器的地区,那么这实际上可能会阻碍性能而不是提高性能。
降低此风险的一个简单解决方案是使用多 CDN 架构,其中始终至少有两个 CDN 同时运行以实现最大覆盖范围。如今,您可以很容易地找到多 CDN 提供商。
单点故障
如果企业只使用一个内容分发网络 (CDN) 提供商,则意味着只有一个点可能会出现故障或出现问题。
这可能会使系统变得更加脆弱和危险。企业需要仔细考虑这一点,也许要有备用计划。
容量限制
CDN 具有固定的容量,并且会不断尝试确保其满足需求。但是,这并不总是可以实现的,尤其是在流量高峰或重大事件期间。如果 CDN 在特定地理区域的容量不足,则部分流量可能会被重新路由到遥远的区域,从而导致性能下降。
此外,如果缓存容量不足,内容可能会比预期更早被清除,导致卸载效果不佳和效率降低。同样,内存和网络容量不足也会降低整体性能,给企业及其最终用户带来意想不到的挑战。
结论
内容分发网络彻底改变了我们在线访问内容的方式。然而,我们必须认识到 CDN 并非没有局限性。无论是处理不可缓存的内容、对 HTTP 以外协议的支持有限或缺乏支持,还是分发本地内容的效率降低,充分了解这些限制有助于做出更明智的决策。