阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
关键技术CDN
2020-9-24    点击量:
  内容发布网(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。关键技术CDN
  
  CDN基本知识
  
  回源域名:源站对应的域名;
  
  加速域名:CDN边缘节点的域名;
  
  防盗链:防止别人通过一些技术手段绕过本站的资源展示页,盗用本站资源,让绕开本站资源展示页的链接失效(比较常见的是小站盗用大站资源);
  
  使用CDN缓存后的网站访问过程:接入CDN后,要做两次CNAME,第一次CNAME到全局负载均衡器,第二次CNAME到区域负载均衡器
  关键技术CDN
  内容管理
  
  内容管理在广义上涵盖了从内容的发布、注入、分发、调整、传递等一系列过程。在这里,内容管理重点强调内容进入Cache点后的内容管理,我们称为本地内容管理。
  
  本地内容管理主要针对一个CDN节点(由多个CDN Cache设备和一个SLB设备构成)进行。本地内容管理的主要目标是提高内容服务的效率,提高本地节点的存储利用率。通过本地内容管理,可以在CDN节 点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有该内容的Cache设备上,从而提高负载均衡的效率。通过本地内容管理还可以 有效地实现在CDN节点内容的存储共享,提高存储空间的利用率。
  
  在实现上,本地内容管理主要包括如下几个方面。
  
  一是本地内容索引。本地内容管理首先依赖于对本地内容的了解。包括每个Cache设备上内容的名称、URL、更新时间、内容信息等。本地内容索引是实现基于内容感知的调度的关键。
  
  二是本地内容拷贝。通常,为了提高存储效率,同一个内容在一个CDN节点中仅存储一份,即仅存储在某个特定的Cache上。但是一旦对该内容的访问超过该Cache的服务提供能力,就需要在本地(而不是通过PUSL的方式)实现内容的分发。这样可以大大提高效率。
  
  三是本地内容访问状态信息收集。搜集各个Cache设备上各个内容访问的统计信息,Cache设备的可用服务提供能力及内容变化的情况。
  
  可以看出,通过本地内容管理,可以将内容的管理从原来的Cache设备一级,提高到CDN节点一级,从而大大增加了CDN的可扩展性和综合能力。
  
  内容路由
  
  CDN负载均衡系统实现CDN的内容路由功能。它的作用是将用户的请求导向整个CDN网络中的最佳节点。最佳节点的选定可以根据多种策略,例如距离最近、节点负载最轻等。负载均衡系统是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。
  
  通常负载均衡可以分为两个层次:全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡(GSLB)主要的目的是在整个网络范围内将用户 的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内 寻找一台最适合的节点提供服务,因此,CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。
  
  负载均衡可以通过多种方法实现,主要的方法包括DNS、应用层重定向、传输层重定向等等。
  
  对于全局负载均衡而言,为了执行就近性判断,通常可以采用两种方式,一种是静态的配置,例如根据静态的IP地址配置表进行IP地址到CDN节点的映 射。另一种方式是动态的检测,例如实时地让CDN节点探测到目标IP的距离(可以采用RRT,Hops作为度量单位),然后比较探测结果进行负载均衡。当 然,静态和动态的方式也可以综合起来使用。
  
  对于本地负载均衡而言,为了执行有效的决策,需要实时地获取Cache设备的运行状态。获取的方法一般有两种,一种是主动探测,一种是协议交互。主 动探测针对SLB设备和Cache设备没有协议交互接口的情况,通过ping等命令主动发起探测,根据返回结果分析状态。另一种是协议交互,即SLB和 Cache根据事先定义好的协议实时交换运行状态信息,以便进行负载均衡。比较而言,协议交互比探测方式要准确可靠,但是目前尚没有标准的协议,各厂家的 实现一般仅是私有协议,互通比较困难。
  
  CDN系统对内容路由技术的展望,在覆盖方面,希望之后CDN服务节点能渗透到网络的细枝末节,让用户享受到低延迟的网络环境。在网络方面,希望流量在网络的路径更合理,通过网络的方式帮助用户更快的找到资源,下载资源,并能针对不同的流量提供定制化的服务保障。在智能化方面,随着数据智能化的程度越来越高,我们希望通过更灵活的策略、更加准确、高效的为用户提供服务。最后在适用性上,希望业务支撑能力的下沉可以给节点的灵活部署提供支持以此来给用户带来更好的使用体验。
  
  内容发布
  
  它借助于建立索引、缓存、流分裂、组播(Multicast)等技术,将内容发布或投递到距离用户最近的远程服务点(POP)处。 [9]
  
  内容分发包含从内容源到CDN边缘的Cache的过程。从实现上,有两种主流的内容分发技术:PUSH和PULL。
  
  PUSH是一种主动分发的技术。通常,PUSH由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的 Cache节点。分发的协议可以采用 Http/ftp等。通过PUSH分发的内容一般是比较热点的内容,这些内容通过PUSH方式预分发( Preload)到边缘Cache,可以实现有针对的内容提供。对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发可以由CP(内容提供商)或者CDN内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分发,它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程PULL是一种被动的分发技术,PULL分发通常由用户请求驱动。当用户请求的内容在本地的边缘 Cache上不存在(未命中)时, Cache启动PUL方法从内容源或者其他CDN节点实时获取内容。在PULL方式下,内容的分发是按需的。
  
  内容存储
  
  对于CDN系统而言,需要考虑两个方面的内容存储问题。一个是内容源的存储,一个是内容在 Cache节点中的存储。
  
  对于内容源的存储,由于内容的规模比较大(通常可以达到几个甚至几十个TB),而且内容的吞吐量较大,因此,通常采用海量存储架构,如NAS和SON。对于在 Cache节点中的存储,是 Cache设计的一个关键问题。需要考虑的因素包括功能和性能两个方面:功能上包括对各种内容格式的支持,对部分缓存的支持;在性能上包括支持的容量、多文件吞吐率、可靠性、稳定性。
  
  其中,多种内容格式的支持要求存储系统根据不同文件格式的读写特点进行优化,以提高文件内容读写的效率。特别是对针对流媒体文件的读写。部分缓存能力指流媒体内容可以以不完整的方式存储和读取。部分缓存的需求来自用户访问行为的随机性,因为许多用户并不会完整地收看整个流媒体节目。事实上,许多用户访问单个流媒体节目的时间不超过10分钟。因此,部分缓存能力能够大大提高存储空间的利用率,并有效提高用户请求的响应时间。但是部分缓存可能导致内容的碎片问题,需要进行良好的设计和控制。
  
  Cache存储的另一个重要因素是存储的可靠性,目前,多数存储系统都采用了独立磁盘冗余阵列(RAID)技术进行可靠存储。但是不同设备使用的RAID方式各有不同。
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠