目录
CDN (Content Delivery Network)内容分发网络
why
-
地理因素:跨越大半个地球去连接服务,没有本地连接来得快
-
运营商网络:各个运营商之间的互联,需要跨网传输,多个用户去挤“连接点”,带宽终究是优先的,能抢到就看个人运气
-
路由转发:网络中存在许多路由器、网管,数据每经过一个节点,都要停顿一下,在二层、三层解析转发,这也会消耗一定的时间,带来延迟
what
CDN有三个关键词:“内容” “分发” 和 “网络”
核心原则就是:“就近访问”
-
内容:CDN在全国、乃至全球各大枢纽城市都建立了机房,部署了大量拥有高存储高带宽的节点,构建了一个专用网络
-
分发:“缓存代理”技术,使用“推”或者“拉”的手段,把源站的内容逐级缓存到网络的每一个节点上;用户上网的时候就不直接访问源站,而是访问离它“最近的”一个CDN节点,属于叫:“边缘节点”,其实就是缓存了源站内容的代理服务器。
加速内容
就是HTTP协议里的“资源”,比如:超文本、图片、视频、应用程序安装包等等
资源可以分为:“静态资源”和“动态资源”
-
静态资源:图片、音频,任何时候来访问都是一样的
-
动态资源:需要由后台服务计算生成的,每次访问都不一样
所以:只有静态资源才能够被缓存加速,就近访问;而动态资源只能由源站实时生成,即时缓存了也没有意义,不过可以允许短暂时间缓存
负载均衡
”大脑“
CDN两个关键组成部分:“全局负载均衡”和“缓存系统”
全局负载均衡(GSLB):当用户接入网络的时候在CDN专网中挑选出一个“最佳”节点提供服务,解决的是用户如何找到“最近的”边缘节点,对整个CDN网络进行“负载均衡”
运行过程:
没有CDN的时候,权威DNS返回的是网站自己的服务器实际的IP地址,浏览器收到DNS解析结果后直连网站。
但加入了CDN后就不一样了,权威DNS返回的不是IP地址,而是CNAME别名记录,指向的是CDN的GSLB。
因为没有拿到IP地址,于是本地DNS就会向GSLB再发起请求,这样就进入了CDN的全局负载均衡系统,开始“智能调度”,依据:
-
看用户IP地址,查表得知地理位置,找相对最近的边缘节点
-
看用户所在的运营商网络,找相同网络的边缘节点
-
检查边缘节点的负载情况,找负载较轻的节点
-
其他:检查“健康状况” 服务能力、带宽、响应时间...
GSLB把这些因素综合起来,用一个负载的算法,最后找出一台“最适合”的边缘节点,把这个节点的IP地址返回给用户,用户就可以“就近”访问CDN的缓存代理了。
缓存代理
”心脏“
两个CDN的关键概念:”命中“和”回源“
-
命中:用户访问的资源恰好在缓存系统中,可以直接返回给用户
-
回源:缓存里没有,必须用代理的方式会源站取
要求:命中率高,回源率低