CDN中前端层的复制

时间:2022-08-16 23:14:40

CDN中前端层的复制

前端层的复制是为了提高静态内容分发的性能和可扩展性。将静态内容的分发转由边缘服务器来完成是为了解决可扩展性的问题,因为这样做可以避免出现在对等点和广域网链路处的网络拥堵风险,而这两个地方的拥堵是网络延时的主要原因。
 
通过使用一个第三方的网络设施来加速静态内容的分发是一种提高内容分发网络边缘性能的常用方法。不过静态内容的分发仍然是一个棘手的工作,因为富媒体(rich-media)内容的使用已经变得越来越多,它产生的流量正在成为互联网流量的一个重要组成部分。将这类媒体内容的分发转移到接近客户端的地方,可以获得很大的好处,原因有二:首先由于这类内容的尺寸庞大,在对等点处的网络延时会使用户明显感觉到性能的下降;其次借助常用的HTTP流技术可以降低分发时间上的不确定性,使媒体的播放变得更加流畅。
 
由于多媒体内容的尺寸较大,所以通常只把每个多媒体内容中用户最感兴趣的部分(而不是全部)缓存在边缘服务器中,称分段缓存(segment caching)。一个多媒体资源中每个片段(fragment)的受欢迎度由用户的访问模式决定:如果用户采用(从头)连续访问的模式,那么通常使用连续缓存的方法,也就是存储资源的起始部分,以减小缓冲时间;如果用户的访问模式主要是媒体中的随机定位,那么就要使用不同的缓存技术,如交错缓存方法,这样可能会更加有效。
 
当待分发的Web内容是由片段(fragment)组装而成时,有人提出了将流内容分割为段(segment)的方法。这个方法要求边缘服务器做更多的工作,其前端层必须包含两个功能:为每个片段提供单独的缓存和片段的组装。作为一个独立的信息实体,每个片段可以包含描述其缓存能力的配置信息,该信息用来指示片段能否被缓存和它在网络上的存活时间(Time-To-Live,TTL),这就可以在片段(而不是在网页)的粒度上管理内容的新鲜度和生命周期。
 
当一个用户请求网页时,边缘服务器在它的缓存中找到该网页的片段,然后立刻将其组装起来。只有那些失去时效或没有被缓存的片段才从源服务器取。因此在边缘服务器上使用基于片段的缓存和动态组装方法对源服务器而言有两个好处:一是它不必完成组装页面的任务;二是它一般只需要分发页面的一小部分内容,也就是边缘服务器上那些失效或缓存中没有的片段。对于大部分由动态创建的网页构成的网络资源,基于片段的缓存技术可以在距离终端用户最近的边缘网络向用户提供这些内容,从用户对性能的感受可以发现这一技术已被证明能够有效地改善响应时间。不仅如此这一技术同样对边缘服务器有益:那些被不同网页共享的同个片段只需保存一份副本,这就大大提高了磁盘空间的利用率;同时它也能够降低边缘服务器上缓存的失效频度,因为网页中的不同部分只有在过期的时候才标记为“失效”。
 
衡量基于片段的缓存技术的常用标准是ESI(一种基于XML的标记语言),能够使用XML来区分内容是否应该缓存。内容提供商根据其开发环境制订相应的ESI规范,用来设计和开发业务逻辑以实现网页的产生和装配。除了将页面分解为片段这一基本功能(即使在一个有条件的方式下),ESI的功能还包括片段不可用时的异常处理以及对被缓存片段的失效性做出判断,所以ESI可以提供比TTL机制更强的一致性确保机制。
 
大多数支持基于片段的缓存技术的边缘服务器并不提供缓存之间的任何协作,也就是说这些缓存完全被作为独立的实体。这就使我们无法享受协作带来的好处,而采取协作的方式可以使边缘服务器发挥其潜在的缓存能力。基于片段的方法也面临与动态内容的类型相关的应用性问题以及网页的片段分解问题,而该方法的主要缺点都与这些问题有关。如果用户的请求序列具有高度的局部性同时源服务器上的内容更新不频繁,基于片段的缓存就能有效地应用。这个条件保证了片段的可缓存性参数足以用来管理内容的新鲜度,从而减轻了源服务器给缓存中的片段设置“失效”标志的负担。因为缓存、划分片段、组装片段等工作都是在每一个具体应用上进行,所以该技术很缺乏透明性。由于ESI代码必须加到原始代码上,这就需要完全修改网页的代码,因此ESI的性能就取决于网页的结构。对于同时为多个内容提供商分发内容的边缘服务器来说,上述对片段的人工辨识和标记几乎是无法承受的。
 
网防cdn专业提供国内外高防cdn加速服务
 
本文链接:http://www.f8i.com/news/349.html