共96 次浏览

CDN-内容分发网络

在最近一次护网行动中,客户无意间问到了CDN这个问题。瞬间不知道该怎么回答,脑海中仔细搜索也没有搜到关于CDN的任何信息。作为一个没有了解到的新的知识点,bing了一下关于CDN的知识,赶紧恶补一下!下面来说一下关于CDN的总结。

1.CDN是什么?

CDN的全称为Content Delivery Network,即内容分发网络。我们第一次看到这个名字肯定就能揣摩到它的作用:内容分发。也就是将我们存放在网站服务器中的内容分发给许许多多前来访问的用户。我们随便在搜索引擎中搜一下这个关键词,可以看到霸屏的广告

说明CDN已经成为了许多企业和组织的选择。首先认识CDN就要了解它工作的原理,我们可以举一个例子,来先让大家通俗易懂的接受它:

现在正值年三十,家里的亲戚都到了家里来欢度春节。一家子人围坐在电视前看春节联欢晚会。有一盘瓜子摆放在中间的桌子上,大家都想吃瓜子,于是每个人都要站起来去盘子里面抓一把瓜子,坐下开始磕。当手里的瓜子磕完了,又要起身去盘子里去抓新的瓜子。这样子不仅费力气,而且当多个人同时去抓盘子里的瓜子的时候,这个盘子就会变得拥挤不堪。于是我们灵机一动,为什么不将盘子里的瓜子分成多份,放到亲戚的手边呢?这样每个人只需要伸手去拿手边的瓜子就可以了,不仅节省了力气,还能解决拥挤的问题。而这,也正是CDN的精髓所在。

相信看完了这个例子,CDN的基本原理就比较能理解了。CDN也就是将原本服务器中的内容缓存至距离用户位置更近的内容缓存设备中,这样用户在访问获取数据的时候就可以更快的得到回应。

        CDN网络中包含的功能实体包括内容缓存设备、内容交换机、内容路由器、CDN内容管理系统等组成。 

        内容缓存为CDN网络节点,位于用户接入点,是面向最终用户的内容提供设备,可缓存静态Web内容和流媒体内容,实现内容的边缘传播和存储,以便用户的就近访问。 

        内容交换机处于用户接入集中点,可以均衡单点多个内容缓存设备的负载,并对内容进行缓存负载平衡及访问控制。

        内容路由器负责将用户的请求调度到适当的设备上。内容路由通常通过负载均衡系统来实现,动态均衡各个内容缓存站点的载荷分配,为用户的请求选择最佳的访问站点,同时提高网站的可用性。内容路由器可根据多种因素制定路由,包括站点与用户的临近度、内容的可用性、网络负载、设备状况等。负载均衡系统是整个CDN的核心。负载均衡的准确性和效率直接决定了整个CDN的效率和性能。

        内容管理系统负责整个CDN的管理,是可选部件,作用是进行内容管理,如内容的注入和发布、内容的分发、内容的审核、内容的服务等。具体的分布可以参照下图所示:

而最简单的CDN网络由一个DNS服务器和几台缓存服务器组成,它的工作流程为:

  1. 当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
  2. CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。
  3. 用户向CDN的全局负载均衡设备发起内容URL访问请求。
  4. CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。
  5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。
  6. 全局负载均衡设备把服务器的IP地址返回给用户。
  7. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

2.CDN的作用是什么?

假设你目前正在运营一个网站,除去交互上的人性化,网站内容的吸引程度等等。用户在使用过程中另一个最直观的感受就是网站的访问速度。目前的相关研究也表明,用户在获取资源时的满意度会随着时延而快速大幅的下降。例如在获取音频类的资源时,时延在超过16秒的时候,用户的平均意见分数就已经快要触底

所以能够控制时延,加快访问速度,也就是CDN最重要的一个功能。除此之外CDN的作用还包括:

(1). 为了实现跨运营商、跨地域的全网覆盖

互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。CDN加速可以覆盖全球的线路,通过和运营商合作,部署IDC资源,在全国骨干节点商,合理部署CDN边缘分发存储节点,充分利用带宽资源,平衡源站流量。

(2). 为了保障你的网站安全

CDN的负载均衡和分布式存储技术,可以加强网站的可靠性,相当无无形中给你的网站添加了一把保护伞,应对绝大部分的互联网攻击事件。广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量 。

(3). 为了异地备援

当某个服务器发生意外故障时,系统将会调用其他临近的健康服务器节点进行服务,进而提供接近100%的可靠性,这就几乎可以让你的网站做到永不宕机。

(4). 为了节约成本投入

使用CDN加速可以实现网站的全国铺设,你根据不用考虑购买服务器与后续的托管运维,服务器之间镜像同步,也不用为了管理维护技术人员而烦恼,节省了人力、精力和财力。

(5). 为了让你更专注业务本身

CDN加速厂商一般都会提供一站式服务,业务不仅限于CDN,还有配套的云存储、大数据服务、视频云服务等,而且一般会提供7×24运维监控支持,保证网络随时畅通,你可以放心使用。并且将更多的精力投入到发展自身的核心业务之上。

3.CDN可以应用在哪些场景?

被广泛应用在流媒体直播、点播加速。企业、教育的网站等等所有需要进行站点加速的场景。我们可以用阿里云为例子,来进行一下应用场景的讲解:

(1).网站站点/应用加速

站点或者应用中大量静态资源的加速分发,建议将站点内容进行动静分离,动态文件可以结合云服务器ECS,静态资源如各类型图片、html、css、js文件等,建议结合 对象存储OSS 存储海量静态资源,可以有效加速内容加载速度,轻松搞定网站图片、短视频等内容分发

(2).视音频点播/大文件下载分发加速

        支持各类文件的下载、分发,支持在线点播加速业务,如mp4、flv视频文件或者平均单个文件大小在20M以上,主要的业务场景是视音频点播、大文件下载(如安装包下载)等,建议搭配对象存储OSS使用,可提升回源速度,节约近2/3回源带宽成本。

(3).视频直播加速

视频流媒体直播服务,支持媒资存储、切片转码、访问鉴权、内容分发加速一体化解决方案。结合弹性伸缩服务,及时调整服务器带宽,应对突发访问流量;结合媒体转码服务,享受高速稳定的并行转码,且任务规模无缝扩展。

(4)移动应用加速

移动APP更新文件(apk文件)分发,移动APP内图片、页面、短视频、UGC等内容的优化加速分发。提供httpDNS服务,避免DNS劫持并获得实时精确的DNS解析结果,有效缩短用户访问时间,提升用户体验。

5.CDN和网游加速器的区别?

其实这也是一个非常有趣的问题。CDN最主要的功能是加速,那么网游加速器也是加速的功能,这二者之间是不是一样的原理呢?

经过刚刚的介绍我们知道,CDN是通过把服务器中的内容缓存至缓存服务器中,然后用户通过访问就近的缓存服务器来提升访问速度。但是网游加速器不一样,我们在没有开启网游加速器时,我们是通过运营商的网络接入到游戏服务器。这条通道可能会比较慢,就类似于乡间的小路。而我们开启了加速器后,我们会通过一条专有的线路连接至游戏服务器。就好像是高速公路,这条路可能会比较绕,但是速度一般是会比乡间的小路要快的。

此条目发表在学习总结分类目录,贴了标签。将固定链接加入收藏夹。