随着近年直播、视频、游戏、电商等大流量业务的高速增长,传统CDN也面对着与日俱增的进化压力,除了最开始的“引导”、“最近邻”等基础功能,“高可用”及“智能化”也成为了CDN加速亟待优化的问题。
今天三方将为您比较CDN的两种调度方式:传统CDN调度与基于HTTP协议的CDN调度。
1 基于DNS解析的调度
传统的CDN方案借助于DNS解析来进行调度,使用LocalDNS出口地址作为查询IP,根据查询IP对用户进行地域调度,但获取的可能不是用户真实的所在地址。按照错误的地址进行CDN调度,明显违背了CDN服务“引导”“临近”的初衷。
2 基于故障切换的调度
一套完备的CDN系统都会具备边缘服务节点故障切换机制,且同时满足人工切换和自动切换的要求。但无论何种故障切换,总归是产生故障后的补救措施,会造成CDN加速的服务质量波动,大大影响了CDN“可用”的服务重点。
3 基于边缘服务节点轮询的调度
CDN服务商通过架设权威DNS服务器,将某个域名在各个区域的对应边缘cache服务节点A记录集合提供给LocalDNS解析查询和缓存。
A记录集合最多可为13个,LocalDNS再从13个A记录里通过轮询挑选提供给URL访问用户,又或者全部提供给互联网的用户客户端,由客户端自行挑选。
这样的轮询机制带来的问题是:如果同一份互联网资源在每个服务节点都存储一份,那么有可能需要到源站进行13次缓存获取。
由此对互联网企业源站所造成的访问压力,带宽成本,以及随之出现的糟糕用户体验,也是需要CDN服务提供商考虑的地方。
内容分发网络的HTTP调度系统,包括决策中心服务器、一个或多个调度中心服务器以及一个或多个边缘调度Cache服务器。
决策中心获取全局的服务器集群带宽和负载情况,统一决策全局生成决策策略。
调度中心执行中心决策策略,与用户客户端直接建立连接,在收到客户端内容请求时,根据客户端所在的实际地理位置及请求内容,精准匹配首选服务器集群,让客户端通过302跳转访问,获取缓存内容,实现CDN加速服务。
HTTP调度系统相对传统CDN加速服务有以下几方面特点:
1 基于HTTP协议调度
客户端与服务器双方通过HTTP协议直联,客户端请求全部被引导至调度中心服务器。
调度中心服务器从客户端的请求中获取互联网用户的公网IP,以此作为CDN调度选取边缘cache服务节点的基准,能够精准无误的“引导”请求到真实“临近”的最优边缘服务节点。
2 基于带宽、负载的调度
HTTP调度系统决策中心依赖CDN网络的节点采集系统来获取CDN系统全网服务节点的实时带宽信息,以及集群的实时健康系数,作为负载数据。
决策中心统筹全网负载数据,通过优秀的决策算法快速演算得出决策策略,第一时间将决策策略提供给调度中心执行。
决策中心可以及时对全网中负载较高的边缘cache服务节点进行流量牵引以及执行备选服务集群,提前防范负载高的服务节点硬抗流量导致故障宕机,确保了CDN服务的高可用。
3 基于边缘服务节点精准调度
调度中心依托决策中心的决策策略,通过精准算法能对每份互联网资源进行唯一的演算,确定唯一边缘cache服务节点提供CDN加速服务。从而避免一份互联网资源在边缘cache服务节点的多份缓存,减少“从源服务器上缓存”给互联网企业源站带来的压力和成本开销。
从以上分析可以看出,相对于传统的DNS解析调度,HTTP协议调度能够根据互联网用户的真实IP地址将其请求引导到临近的边缘cache服务节点,实现绝对有效的CDN加速。
同时,由于HTTP服务器即调度中心服务器与用户端直接建立了连接,能够做到单机级别的精准调度,并实时根据当前带宽信息与集群负载状况,做出决策调度调整,大大提高CDN加速服务的质量与客户满意度。
再者,HTTP服务器的灵活性让其能够轻松实现互联网加速需求企业对于不同加速资源的个性化加速策略,这也是传统DNS调度所无法比拟的。
虽然目前基于HTTP的CDN调度仍不完美,但它有着更加广阔的使用场景,有极大的可能会在企业内部替代掉传统的DNS调度,实现更佳的CDN加速方案,让互联网用户得到更流畅的上网体验。