深入浅出CDN

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 深入浅出CDN,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、CDN基本概念

CDN 即内容分发网络(Content Delivery Network),是现有 Internet 中增加的一层新的网络架构,由遍布全国的高性能加速节点构成。这些高性能的服务节点会按照一定的缓存策略存储业务内容,当用户向该业务内容发起请求时,请求会被调度至最接近用户的服务节点,直接由服务节点快速响应,有效降低用户访问延迟,提升可用性。
简单讲,CDN 就是通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容。
CDN 主要解决这么些问题:

  • 物理距离远,多次网络转发,延时高不稳定;
  • 所在运营商不同,需运营商之间转发绕行;
  • 网络带宽处理能力有限,海量请求时,响应速度与可用性降低。
    在这里插入图片描述

二、CDN和网游加速器有什么区别?

从效果上来看,无论是CDN还是网游加速器,都是让网络访问(视频,网页加载,直播,游戏等)变快了,但从原理上它们还是有区别的。
当我们玩游戏的时候,如果不打开加速器,是用户通过运营商直接访问游戏服务器,而中间所走的这条链路,我们可以把它看成是一条巨慢无比的乡道。
而打开了游戏加速器之后,用户走到游戏加速服务器将走的是一条高速,而游戏加速器访问游戏服务器的,将是另外一条高速。
在这里插入图片描述
两条高速路的里程或许会更长,但速度却要远远快于乡道。
所以说,CDN的本质上是将媒体资源,动静态图片(Flash),HTML,CSS,JS等等内容缓存到距离你更近的IDC,从而让用户进行共享资源,实现缩减站点间的响应时间等等需求,而网游加速器的本质则是通过建立高带宽机房,架设多节点服务器来为用户进行加速。
在我看来,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.用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

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

四、CDN访问原理

假设业务源站域名为 www.test.com,域名接入 CDN 开始使用加速服务后,当用户发起 HTTP 请求时,实际的处理流程如下图所示:
在这里插入图片描述
1.用户向 www.test.com, 下的某图片资源(如:1.jpg)发起请求,会先向 Local DNS 发起域名解析请求。
2.当 Local DNS 解析 www.test.com, 时,会发现已经配置了 CNAME www.test.com.cdn.dnsv1.com,解析请求会发送至 Tencent DNS(GSLB),GSLB 为腾讯云自主研发的调度体系,会为请求分配最佳节点 IP。
3.Local DNS 获取 Tencent DNS 返回的解析 IP。
4.用户获取解析 IP。
5.用户向获取的 IP 发起对资源 1.jpg 的访问请求。
6.若该 IP 对应的节点缓存有 1.jpg,则会将数据直接返回给用户(10),此时请求结束。若该节点未缓存 1.jpg,则节点会向业务源站发起对 1.jpg 的请求(6、7、8),获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点(9),并返回给用户(10),此时请求结束。

五、使用CDN的好处

1.缩短网站加载时间-通过使用附近的CDN服务器(在其他优化措施中),将内容分发到网站访问者附近,访问者体验到更快的页面加载时间,因此CDN可以降低跳出率并增加人们在该网站上花费的时间。换句话说,网站速度越快,意味着更多的访客将停留并停留更长的时间。
2.降低带宽成本-网站托管的带宽消耗成本是网站的主要费用。通过缓存和其他优化,CDN能够减少原始服务器必须提供的数据量,从而降低网站所有者的托管成本。
3.增加内容的可用性和冗余-大量流量或硬件故障可能会中断正常的网站功能。由于CDN具有分布式特性,因此与许多原始服务器相比,CDN可以更好地处理更多流量并承受硬件故障。
4.改善网站安全性-CDN可以通过提供DDoS缓解措施,改进安全证书以及其他优化措施来提高安全性。

六、CDN常见名次解释

1、Origin Server源站
做 CDN 之前的客户真正的服务器。
2、User
访问者,也就是要访问网站的网民。
3、Last Mile
最后一公里,也就是网民到他所访问到的 CDN 服务器之间的路径。
4、域名
域名是Internet网络上的一个服务器或一个网络系统的名字,全世界,没有重复的域名。
5、CNAME记录
它是一个别名记录( Canonical Name );当 DNS 系统在查询 CNAME 左面的名称的时候,都会转向 CNAME 右面的名称再进行查询,一直追踪到最后的 PTR 或 A 名称,成功查询后才会做出回应,否则失败。
6、CNAME域名
CDN的域名加速需要用到CNAME记录,在阿里云控制台配置完成CDN加速后,您会得到一个加速后的域名,称之为CNAME域名(该域名一定是*.http://kunlun.com), 用户需要将自己的域名作CNAME指向这个.*http://kunlun.com的域名后,域名解析的工作就正式转向阿里云,该域名所有的请求都将转向阿里云CDN的节点。
7、DNS
DNS即Domain Name System,是域名解析服务的意思。它在互联网的作用是:把域名转换成为网络可以识别的ip地址。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是一一对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
比如:上网时输入的百度一下,你就知道会自动转换成为220.181.112.143
8、边缘节点
也称CDN节点、Cache节点等;是相对于网络的复杂结构而提出的一个概念,指距离最终用户接入具有较少的中间环节的网络节点,对最终接入用户有较好的响应能力和连接速度。其作用是将访问量较大的网页内容和对象保存在服务器前端的专用cache设备上,以此来提高网站访问的速度和质量。
9、cache
cache高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的RAM位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM存储器速度快,所以当RAM的访问速度低于微处理器的速度时,常使用高速缓冲存储器。

七、CDN应用场景

1.静态网页:图片小文件、博客
2.大文件下载:软件下载、视频点播或图片存储网站
3.动态加速:直播网站
4.应用加速:网站访问,手机app等

八、CDN产品

当然,对于中小型公司来说,独立部署CDN的代价往往是巨大的——毫无疑问,用户地理覆盖范围越广,越密集,成本越高。
于是,基于互联网企业普遍对CDN的需求,就对应产生了相关产品的市场。
市面上代表卖家有 阿里云,腾讯云,华为云 等,友情提示,新用户及假节日大都有巨额优惠。
作为客户,我们只需砸一丢丢小钱,就可以让我们的网站享受到CDN服务。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/130231.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!