We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CDN (全称 Content Delivery Network),即内容分发网络
构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术
CDN
简单来讲,CDN就是根据用户位置分配最近的资源
于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术语叫边缘节点,其实就是缓存了源站内容的代理服务器。如下图:
在没有应用CDN时,我们使用域名访问某一个站点时的路径为
用户提交域名→浏览器对域名进行解释→DNS 解析得到目的主机的IP地址→根据IP地址访问发出请求→得到请求数据并回复
DNS
应用CDN后,DNS 返回的不再是 IP 地址,而是一个CNAME(Canonical Name ) 别名记录,指向CDN的全局负载均衡
IP
CNAME
CNAME实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN实现的关键
由于没有返回IP地址,于是本地DNS会向负载均衡系统再发送请求 ,则进入到CDN的全局负载均衡系统进行智能调度:
看用户的 IP 地址,查表得知地理位置,找相对最近的边缘节点
看用户所在的运营商网络,找相同网络的边缘节点
检查边缘节点的负载情况,找负载较轻的节点
其他,比如节点的“健康状况”、服务能力、带宽、响应时间等
结合上面的因素,得到最合适的边缘节点,然后把这个节点返回给用户,用户就能够就近访问CDN的缓存代理
整体流程如下图:
缓存系统是 CDN 的另一个关键组成部分,缓存系统会有选择地缓存那些最常用的那些资源
其中有两个衡量CDN服务质量的指标:
缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户
回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源
现在的商业 CDN命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上
CDN 目的是为了改善互联网的服务质量,通俗一点说其实就是提高访问速度
CDN 构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速
通过CDN的负载均衡系统,智能调度边缘节点提供服务,相当于CDN服务的大脑,而缓存系统相当于CDN的心脏,缓存命中直接返回给用户,否则回源
The text was updated successfully, but these errors were encountered:
https://juejin.cn/post/7108719346947457054
Sorry, something went wrong.
No branches or pull requests
一、是什么
CDN (全称 Content Delivery Network),即内容分发网络
构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN
的关键技术主要有内容存储和分发技术简单来讲,
CDN
就是根据用户位置分配最近的资源于是,用户在上网的时候不用直接访问源站,而是访问离他“最近的”一个 CDN 节点,术语叫边缘节点,其实就是缓存了源站内容的代理服务器。如下图:
二、原理分析
在没有应用
CDN
时,我们使用域名访问某一个站点时的路径为应用
CDN
后,DNS
返回的不再是IP
地址,而是一个CNAME
(Canonical Name ) 别名记录,指向CDN
的全局负载均衡CNAME
实际上在域名解析的过程中承担了中间人(或者说代理)的角色,这是CDN
实现的关键负载均衡系统
由于没有返回
IP
地址,于是本地DNS
会向负载均衡系统再发送请求 ,则进入到CDN
的全局负载均衡系统进行智能调度:看用户的 IP 地址,查表得知地理位置,找相对最近的边缘节点
看用户所在的运营商网络,找相同网络的边缘节点
检查边缘节点的负载情况,找负载较轻的节点
其他,比如节点的“健康状况”、服务能力、带宽、响应时间等
结合上面的因素,得到最合适的边缘节点,然后把这个节点返回给用户,用户就能够就近访问
CDN
的缓存代理整体流程如下图:
缓存代理
缓存系统是
CDN
的另一个关键组成部分,缓存系统会有选择地缓存那些最常用的那些资源其中有两个衡量
CDN
服务质量的指标:缓存系统也可以划分出层次,分成一级缓存节点和二级缓存节点。一级缓存配置高一些,直连源站,二级缓存配置低一些,直连用户
回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效地减少真正的回源
现在的商业
CDN
命中率都在 90% 以上,相当于把源站的服务能力放大了 10 倍以上三、总结
CDN
目的是为了改善互联网的服务质量,通俗一点说其实就是提高访问速度CDN
构建了全国、全球级别的专网,让用户就近访问专网里的边缘节点,降低了传输延迟,实现了网站加速通过
CDN
的负载均衡系统,智能调度边缘节点提供服务,相当于CDN
服务的大脑,而缓存系统相当于CDN
的心脏,缓存命中直接返回给用户,否则回源参考文献
The text was updated successfully, but these errors were encountered: