天天说架构,那CDN到底是什么?

浏览器输入域名后,DNS将域名解析为地址,然后请求该地址,返回一个网页。
这个过程就像你买个东西,先查找商店位置,然后找到想要的商品,拿回家。

优化-不断地追求

在某宝买个东西,这东西一定要从总部仓库送来吗br> 成熟的电商都会在各地建仓库,客户一下单,就近发货,次日达使得用户体验极佳。

所以网站访问可借鉴“就近配送”思想。

可以在各地的数据中心里部署几台机器,形成一个缓存集群,用户访问数据时,就近访问!
这些分布在各个地方的各个数据中心的节点,称为边缘节点。

由于边缘节点数目较多,但每个集群规模较小,不可能缓存下来所有东西,可能无法命中,这样就会在边缘节点之上。
有区域节点,规模就要更大,缓存的数据更多,命中概率更大。区域节点之上是中心节点,规模更大,缓存数据更多。
还不命中,就只好回源网站访问了。
CDN的分发系统的架构:

天天说架构,那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可以进行缓存的内容有很多种。

保质期长的日用品比较容易缓存,因为不容易过期,对应到就像电商仓库系统里,就是静态页面、图片等,因为这些东西也不怎么变,所以适合缓存。

  • 接入层缓存的架构
    天天说架构,那CDN到底是什么? JavaEdge 天天说架构,那CDN到底是什么? 微信公众号 天天说架构,那CDN到底是什么? 关注后台回复“面试”,领取海量学习资源

    来源:JavaEdge.

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月11日
下一篇 2021年7月11日

相关推荐