浏览器输入域名后,DNS将域名解析为地址,然后请求该地址,返回一个 页。
这个过程就像你买个东西,先查找商店位置,然后找到想要的商品,拿回家。
优化-不断地追求
在某宝买个东西,这东西一定要从总部仓库送来吗br> 成熟的电商都会在各地建仓库,客户一下单,就近发货,次日达使得用户体验极佳。
所以 站访问可借鉴“就近配送”思想。
可以在各地的数据中心里部署几台机器,形成一个缓存集群,用户访问数据时,就近访问!
这些分布在各个地方的各个数据中心的节点,称为边缘节点。
由于边缘节点数目较多,但每个集群规模较小,不可能缓存下来所有东西,可能无法命中,这样就会在边缘节点之上。
有区域节点,规模就要更大,缓存的数据更多,命中概率更大。区域节点之上是中心节点,规模更大,缓存数据更多。
还不命中,就只好回源 站访问了。
CDN的分发系统的架构:
无CDN
无CDN时:用户向浏览器输入www.web.com域名后,客户端访问本地DNS服务器时,若本地DNS服务器:
- 有缓存
返回 站的地址 - 没有
递归查询到 站的权威DNS服务器,这个权威DNS服务器是负责web.com的,它会返回 站的IP地址。本地DNS服务器缓存下IP地址,将IP地址返回,然后客户端直接访问这个IP地址,就访问到了这个 站。
有CDN
就不一样了。在web.com这个权威DNS服务器上,会设置一个CNAME别名,指向另外一个域名 www.web.cdn.com,返回给本地DNS服务器。
当本地DNS服务器拿到这个新域名,需继续解析,再访问的就不是web.com的权威DNS服务器了,而是web.cdn.com的权威DNS服务器。在这个服务器上,还是会设置一个CNAME,指向另外一个域名,也即CDN 络的全局负载均衡器。
接下来,本地DNS服务器去请求CDN的全局负载均衡器解析域名,全局负载均衡器会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:
- 根据用户IP地址,判断哪一台服务器距用户最近
- 用户所处的运营商
- 根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需的内容
- 查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力
综合分析后,全局负载均衡器会返回一台缓存服务器的IP地址。
本地DNS服务器缓存这个IP地址,然后将IP返回给客户端,客户端去访问这个边缘节点,下载资源。缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到 站的源服务器将内容拉到本地。
CDN可以进行缓存的内容有很多种。
保质期长的日用品比较容易缓存,因为不容易过期,对应到就像电商仓库系统里,就是静态页面、图片等,因为这些东西也不怎么变,所以适合缓存。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!