聊聊关于CDN的那些事儿~

这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战

当谈到CDN时,对于我们前端工程师来说肯定不是一个陌生的名词,都知道它是一个用来提升网站访问速度的系统,但是再深入下去,比如它由哪些部分组成,它是如何去提升网站访问速度这样的问题时,我们却不能很好地回答,因此这篇文章就准备好好聊聊关于CDN的具体内容,废话不多说,开搞!

ppx2.jpg

什么是CDN

CDN(Content Delivery Network)即 内容分发网络,从它名字上的定义我们就能很清楚它的作用:根据一定规则智能地进行网络资源内容的分发,它的主要思路就是尽可能避开互联网上有可能影响 数据传输速度稳定性 的瓶颈和环节,使内容传输的更快、更稳定

CDN网络由许多节点构成,这些节点上缓存有目标网站的大部分静态资源,用户拿到的静态资源也是由这些CDN节点提供的,而不是源站,由于CDN节点通常在物理距离上跟用户较近,所以资源传输的路径也较近,因此可以很大程度提高网站的响应速度

CDN节点通常分为三类:

  • 中心节点,拥有 CDN网管中心全局负载均衡DNS重定向解析系统,负责整个CDN网络的分发及管理
  • 区域节点,用于管理某一个区域下的所有边缘节点,目的是为了减轻 中心节点 的压力
  • 边缘节点,距离用户最近的节点,通常也是 直接 为用户提供静态资源的节点,如果该节点没有对应的资源,就会向上级进行递归查找,查找路径为: 边缘节点 => 区域节点 => 中心节点 => 源站,它主要由 负载均衡设备高速缓存服务器 两部分组成
    • 负载均衡设备: 负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时还负责收集节点与周围环境的信息,保持与全局负载均衡DNS的通信,实现整个系统的负载均衡
    • 高速缓存服务器: 负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求

也就是上述三种类型的节点,构成了所谓的“三级部署架构”,如下图

cdn.png

CDN的工作流程

通常CDN的工作流程如下:

  1. 用户请求首先会被 本地DNS服务器 解析,如果解析成功,则返回对应IP给用户
  2. 如果上一步不成功,则会将解析的任务转发给授权的DNS服务器,也就是 CNAME 指向的CDN专用DNS服务器,其实就是所谓的 负载均衡DNS重定向解析系统
  3. 负载均衡DNS重定向解析系统 将请求分配最佳节点IP地址
  4. 返回解析出来的IP地址
  5. 用户向解析出来的IP地址对应的节点发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端,至此,整个过程结束

CDN的优点

CDN优点如下:

  1. 由于消除了 不同运营商 之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,同时也借助于负载均衡DNS重定向解析系统的智能请求分配,从而可以最大程度提高网站的性能
  2. 广泛分布的CDN节点加上节点之间的 智能冗余机制,可以有效地预防黑客入侵以及降低各种DDoS攻击对网站的影响,最大程度保证网站的可用性
  3. 广泛分布的CDN节点也保证了抵抗 容灾 的能力
  4. 由于服务器之间的 镜像同步,所以资源更新的整个过程完全自动化,大大降低了后期的维护成本
  5. 可以帮助源站减轻请求的压力,实现 分流 的效果

结语

网站的优化方式多种多样,CDN肯定是其中重要的一环,因此了解并掌握它的原理很重要,本篇文章也只是说了冰山一角,很多东西还是需要实际去操作后才能领悟,也就是所谓的 实践才是检验真理的唯一标准,所以还得继续努力才行呀~

猜你喜欢

转载自juejin.im/post/7030698023030095885