网站减速
CDN 非常适合须要减速的网站,包含门户,电子商务平台,新闻应用程序以及用于用户生成的内容(UGC)的应用程序。它为减速域名下的动态内容提供了杰出的减速。此外,它反对自定义缓存策略。用户能够依据须要设置最大缓存期限。能够缓存的文件包含但不限于 .zip,.exe,.wmv,.gif,.png,.bmp,.wma, .rar,.jpeg 和.jpg。
下载减速
CDN 对于下载客户端,游戏客户端,利用商店和基于 HTTP 或 HTTPS 提供下载服务的网站很有用。越来越多的新服务(例如应用程序和手机游戏)须要实时更新软件。惯例下载服务须要提供更多和更大的下载。如果原始服务器必须间接解决所有这些申请,则会给这些服务器造成微小压力,并导致重大的瓶颈。通过 CDN 下载减速,能够将要下载的内容散发到边缘节点,从而加重了原始服务器的压力并确保了高速下载。
视频点播减速
对于提供按需视听服务的客户,CDN 是必须的。这样的点播服务包含在线教育,视频共享,点播视频和其余视听内容。惯例的按需视听内容给服务器带来了惨重的累赘,并耗费了大量带宽。产生这种状况时,低速服务会侵害用户体验。CDN 通过向所有 CDN 节点交付内容来确保此类服务的疾速,牢靠,平安的减速。而后,用户能够随时随地从左近的节点获取该内容。
整个站点减速
对于蕴含动静和动态内容的网站以及波及大量 ASP,JSP 或 PHP 申请的网站,CDN 是一个不错的抉择。CDN 的整个站点减速可减速动静和动态内容。能够从左近的节点拜访动态内容,而通过最佳路由从原始服务器检索动静内容。因为 CDN 有助于整个站点的减速和实时优化,因而能够更快地加载动静页面。缩小了站点拥塞,并使站点拜访更加牢靠。
CDN 的关键技术次要有内容路由技术、内容散发技术、内容存储技术、内容治理技术等。
随着宽带网络和宽带流媒体利用的衰亡,CDN(通常被称为内容散发网络 Content distribution network,有时也被称作内容传递网络 Contentdeliverynetwork)作为一种进步网络内容,特地是进步流媒体内容传输的服务质量、节俭骨干网络带宽的技术,在国内外失去越来越宽泛的利用。
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 边缘的 Cache 的过程。从实现上看,有两种支流的内容散发技术:PUSH 和 PULL.
PUSH 是一种被动散发的技术。通常,PUSH 由内容管理系统发动,将内容从源或者核心媒体资源库散发到各边缘的 Cache 节点。散发的协定能够采 用 HTTP/FTP 等。通过 PUSH 散发的内容个别是比拟热点的内容,这些内容通过 PUSH 形式预散发 (Preload) 到边缘 Cache,能够实现有针 对的内容提供。对于 PUSH 散发须要思考的次要问题是散发策略,即在什么时候散发什么内容。一般来说,内容散发能够由 CP(内容提供商)或者 CDN 内容管 理员人工确定,也能够通过智能的形式决定,即所谓的智能散发。它依据用户拜访的统计信息,以及预约义的内容散发的规定,确定内容散发的过程。
PULL 是一种被动的散发技术,PULL 散发通常由用户申请驱动。当用户申请的内容在本地的边缘 Cache 上不存在 (未命中) 时,Cache 启动 PULL 办法从内容源或者其余 CDN 节点实时获取内容。在 PULL 形式下,内容的散发是按需的。
在理论的 CDN 零碎中,个别两种散发形式都反对,然而依据内容的类型和业务模式的不同,在抉择次要的内容散发形式时会有所不同。通常,PUSH 的形式适宜内容拜访比拟集中的状况,如热点的影视流媒体内容;PULL 形式比拟适宜内容拜访扩散的状况。
在内容散发的过程中,对于 Cache 设施而言,要害的是须要建设内容源 URL、内容公布的 URL、用户拜访的 URL,以及内容在 Cache 中存储的地位之间的映射关系。
内容存储技术
对于 CDN 零碎而言,须要思考两个方面的内容存储问题。一个是内容源的存储,一个是内容在 Cache 节点中的存储。
对于内容源的存储,因为内容的规模比拟大(通常能够达到几个甚至几十个 TB),而且内容的吞吐量较大,因而,通常采纳海量存储架构。如 NAS 和 SON.
对于在 Cache 节点中的存储,是 Cache 设计的一个关键问题。须要思考的因素包含性能和性能两个方面: 在性能上包含对各种内容格局的反对、对局部缓存的反对,在性能上包含反对的容量、多文件吞吐率、可靠性、稳定性。
其中,多种内容格局的反对要求存储系统依据不同文件格式的读写特点进行优化,以进步文件内容读写的效率,特地是对流媒体文件的读写。
局部缓存能力指流媒体内容能够以不残缺的形式存储和读取。局部缓存的需要来自用户拜访行为的随机性,因为许多用户并不会残缺地收看整个流媒体节目,事实上,许多用户拜访单个流媒体节目的工夫不超过 10 分钟。因而,局部缓存能力可能大大提高存储空间的利用率,并无效地进步用户申请的响应工夫。然而局部 缓存可能导致内容呈现碎片问题,须要进行良好的设计和管制。
Cache 存储的另一个重要因素是存储的可靠性,目前,少数存储系统都采纳了 RAID 技术进行牢靠存储。然而不同设施应用的 RAID 形式各有不同。
本文由博客群发一文多发等经营工具平台 OpenWrite 公布