CDN简介
CDN的全称是 Content Delivery Network,也就是基于内容的转发网络。
网络归根结底还是通过光纤或者电缆传播,距离越近,对应的时延肯定越小。
假如一个上海的主机想要访问北京的主机的一些数据,那么数据肯定要走几百公里的路程。能不能在上海设置一个代理主机来缓存北京的主机对应的数据,这样的话,上海的主机直接访问上海的代理主机而不用在访问源服务器了,大大的减少了时延。
这就是CDN,基于内容的转发网络,通过设置边缘代理服务器来大大的减少了客户端请求的网络时延。
CDN结构
首先说下CDN的结构:
CDN分为中心节点和边缘节点:
1、中心节点
是CDN的心脏,负责对边缘节点的状态进行监控,根据传输距离、边缘节点的负载情况等条件 来为客户端分配最合适的边缘节点,做好边缘节点的负载均衡。
中心节点就是一个智能调度服务器,为不同位置的浏览器分发不同的边缘节点。
2、边缘节点
边缘节点是代理服务器,是对源服务器的缓存。
DNS记录
一个权威DNS服务器有两种常用的记录格式:
1、域名和IP地址的映射记录,记录类型为 A
2、域名和域名的映射记录,记录类型为 CNAME
CNAME有什么用呢?
假如一个公司有好几百个域名,并且这好几百个域名都指向通过一个机器。
如果某天这个机器更换了一个IP地址,那么肯定要手动的为这几百个域名都更改对应的域名,太麻烦了。
CNAME就可以解决这一问题。
1、首先我们设置一个A类型的记录r1,记录中存放一个固定的域名name1,指向机器的ip地址。
2、剩余的几百个域名,我们都使用CNAME,也就是将域名都指向name1.
这样的话,当机器更改IP地址后,只需要更改r1对应的ip地址就可以了。
当然你可能会说,一个公司怎么可能会有几百个域名指向一台机器呢,太夸张了。
这就是历史原因了,之前计算机资源比较昂贵,多个域名指向一个机器是很正常的。。
另外,CNAME现在多用于CDN配置。一个域名不指向对应的IP地址,而是指向对应的CDN的智能调度服务器域名。
为什么不直接指向CDN的智能调度服务器的IP地址呢?想必读者都知道原因了吧。如果CDN的更换IP地址了,那么得需要为多少对应的记录更改IP地址啊。使用CNAME的话,只需要更改CDN的智能调度服务器的域名记录就可以了。
CDN工作流程
CDN是跟DNS联合起来工作的。
1、当一个浏览器利用DNS去解析网站域名的时候,网站的权威DNS服务器不会直接返回源服务器的IP地址,而是返回一个CNAME记录。
CNAME中对应着CDN的智能调度服务器的域名,也就是CDN中心节点的域名。
2、浏览器通过CDN的DNS服务器来解析智能调度器的域名,获取中心节点的IP地址。
3、浏览器通过IP地址访问CDN的智能调度服务器,CDN的智能调度服务器会根据以下的规则来返回一个最合适的边缘节点的IP给浏览器。
1、根据源IP地址,判断出地理位置,返回其最近的边缘节点
2、看所属的运营商网络,返回同一个运营商的边缘节点
3、看边缘节点的负载情况,选择负载比较低的边缘节点
4、选择带宽比较高、响应时间比较短的边缘节点。
3、浏览器得到了边缘节点的IP地址,然后发送对应的请求。
4、边缘节点得到对应的请求后,如果有对应的资源,就返回,如果没有,就向源服务器发送请求获取,然后缓存到本地,并返回给浏览器。
CDN缓存代理
CDN中的边缘节点是无法将互联网上的所有内容都缓存起来的,只能选择性的缓存那些热点内容。
CDN中的边缘节点缓存有两个指标来衡量缓存的效率:
1、命中率
命中率 指的是 边缘节点对于客户端的资源命中概率。
2、回源率
回源率 指的是 边缘节点对于客户端的资源没有命中,请求源服务器的概率。
命中率越高、回源率越低,说明一个CDN越能够提升访问效率。
动态资源CDN——边缘计算
资源分为动态资源和静态资源。
静态资源,比如说图片、视频等每次获取都不会改变的资源,可以使用CDN进行代理缓存。
动态资源是服务器会根据不同的参数来返回不同的资源结果,是一个动态的,比如实时点击率等动态数据。CDN是无法直接进行缓存的。
CDN通过引入数据对应的相关计算代码,来实现动态数据缓存,这就是我们熟悉的边缘计算,在边缘节点进行计算。
————————————————
版权声明:本文为CSDN博主「张孟浩_jay」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40276626/article/details/120442384