CDN 分发技术

简单的说,CDN是一个经策略性部署的整体系统,包括分布式缓存,负载均衡,网络请求和重定向和内容管理4个要件。
内容管理和全局的网络流量管理是CDN的核心所在,通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务

传统的IDC 服务模式

CDN分发模式

CDN 分发技术_第1张图片
  1. 用户在浏览器中输入要访问的域名;
  2. 浏览器向域名解析服务器发出解析请求,由于CDN对域名解析过程进行了调整,所以用户端一般得到的是该域名对应的CNAME记录,此时浏览器需要再次对获得的CNAME域名进行解析才能得到缓存服务器实际的IP地址。
    //注:在此过程中,全局负载均衡DNS解析服务器会根据用户端的源IP地址,如地理位置(深圳还是上海)、接入网类型(电信还是网通)将用户的访问请求定位到离用户路由最短、位置最近、负载最轻的Cache节点(缓存服务器)上,实现就近定位。定位优先原则可按位置、可按路由、也可按负载等。
  3. 再次解析后浏览器得到该域名CDN缓存服务器的实际IP地址,向缓存服务器发出访问请求;
  4. 缓存服务器根据浏览器提供的域名,通过Cache内部专用DNS解析得到此域名源服务器的真实IP地址,再由缓存服务器向此真实IP地址提交访问请求;
  5. 缓存服务器从真实IP地址得到内容后,一方面在本地进行保存,以备以后使用,同时把得到的数据发送到客户端浏览器,完成访问的响应过程;
  6. 用户端得到由缓存服务器传回的数据后显示出来,至此完成整个域名访问过程。

CDN 的关键技术

内容路由技术,内容分发技术,内容存储技术,内容管理技术

内容路由

最佳节点的选择,最佳节点的选定可以有多种策略,例如距离最近,节点负载最轻等。

负载均衡分为全局负载均衡和本地负载均衡等,就近性判断是全局负载均衡的主要特点
负载均衡的实现方法包括DNS,应用重定向,传输层重定向等。

内容分发技术

内容分发包括从内容源到CDN边缘的Cache过程。从实现上看主要有两种实现方试:Push和Pull

通过Push分发的内容一般是比较热点的内容,由内容管理节点发起主动Push到各个cache节点,通过用户的pv来判断那些内容时热点内容,可以主动的推送到各个Cache节点

通过Pull分发的内容一般是比较分散的内容,由用户主动请求,但是Cache几点不存在,这样的话Cache几点会向数据源或者其他Cache节点请求。

在内容分发过程中,对于Cache设备而言,关键的是需要建立内容源URL,内容发布者URL,用户访问的URL,以及内容在Cache中存储的的位置之间的映射关系

内容存储技术

对于在Cache节点中的存储,是Cache设计的一个关键问题。需要考虑的因素包括功能和性能两个方面:在功能上包括对各种内容格式的支持、对部分缓存的支持,在性能上包括支持的容量、多文件吞吐率、可靠性、稳定性。

Cache 存储的另外一个重要因素是存储的可靠性,目前,多数存储系统都采用了RAID技术进行可靠存储

内容管理技术

内容管理在广义上涵盖了从内容的发布、注入、分发、调整、传递等一系列过程。在这里,内容管理重点强调内容进入Cache点后的内容管理,我们称为本地内容管理。

本地内容管理主要针对一个CDN节点(由多个CDN Cache设备和一个SLB设备构成)进行。本地内容管理的主要目标是提高内容服务的效率,提高本地节点的存储利用率。通过本地内容管理,可以在CDN节点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有该内容的Cache设备上,从而提高负载均衡的效率。通过本地内容管理还可以有效地实现在CDN节点内容的存储共享,提高存储空间的利用率。

在实现上,本地内容管理主要包括如下几个方面。

一是本地内容索引。本地内容管理首先依赖于对本地内容的了解。包括每个Cache设备上内容的名称、URL、更新时间、内容信息等。本地内容索引是实现基于内容感知的调度的关键。

二是本地内容拷贝。通常,为了提高存储效率,同一个内容在一个CDN节点中仅存储一份,即仅存储在某个特定的Cache上。但是一旦对该内容的访问超过该Cache的服务提供能力,就需要在本地(而不是通过PUSL的方式)实现内容的分发。这样可以大大提高效率。

三是本地内容访问状态信息收集。搜集各个Cache设备上各个内容访问的统计信息,Cache设备的可用服务提供能力及内容变化的情况。

可以看出,通过本地内容管理,可以将内容的管理从原来的Cache设备一级,提高到CDN节点一级,从而大大增加了CDN的可扩展性和综合能力。

综上所述,CDN作为一种支持大规模高质量的流媒体服务的关键技术,目前已经基本成熟,具备了广泛应用的能力。

你可能感兴趣的:(CDN 分发技术)