CDN简述

为了解决传统动静资源混合架构,在静态资源被大量重复访问时卡顿情况,CDN是极好的方案!

CDN简介

CDN(content delivery network)内容分发网络。
简单来理解CDN是网络的边缘节点,是离用户最近的服务器节点,相当于在用户和源站点间增加一层CACHE(缓存)层,将源站点的静态资源缓存在CDN节点上,让用户根据自己需求在最近的节点获取内容,给用户最快的响应结果。

CDN的贡献

  • 解决了服务端中间一公里过程中带宽小、用户访问量大、资源站点分布不均匀等造成的网络阻塞,从而引起用户访问慢的问题。

CDN访问过程

如下图所示:

  • 1:首先用户访问某域名,操作系统会向DNS查询域名对应的IP。
  • 2:DNS将域名对应IP返回给用户。(该过程简单的认为在本地DNS就能查询到相应IP)
  • 3:用户获得IP后向CDN智能调度器查询该IP对应的CDN节点。
  • 4:CDN智能调度器根据一定的算法和策略(静态拓扑,容量等(待研究?)),将距离用户最近的或者说最适合的CDN节点IP返回给用户。
  • 5:用户访问该CDN节点请求资源。
  • 6:CDN节点返回给节点上缓存的数据。
  • 7:若CDN节点上并无缓存用户所期望数据,那CDN节点会回源到源站服务器去请求资源。
  • 8:源站服务器将资源数据返回给CDN节点,CDN节点在进行6的步骤将数据返回给用户,同时CDN节点将缓存该数据,为保证接下来该资源的访问。

CDN简述

CDN的组成要素

CDN由智能调度器+缓存服务器组成。

  • 智能调度器
    智能调度器是CDN中最为关键的部分,它主要负责判断和选择离用户最近的CDN节点,从而给用户提供最快的访问速度。
    当用户访问路由到智能调度器,由它来进行接下来的域名解析工作,根据预先定义好的规则和策略来选择最适合用户访问的CDN节点IP,使用户获得最好的访问体验。
    同时智能调度器还负责与部署在各地的CDN保持通信,跟踪和监控各个节点的健康状态、容量等信息,确保在进行节点选择时能提供给用户最合适的CDN节点的请求处理。
  • 缓存服务器(此环节待研究)
    CDN其实就是用户和源站点间的一层缓存。
    负载均衡设备
    内容Cache服务器
    共享内存

协议回源原则

当CDN节点未缓存用户想要的资源时,CDN节点会进行源站的回源来获取相应资源,在此回源的过程中,回源使用的协议和用户请求使用的协议一致,如用户请求使用https,那CDN节点回源也会使用https协议。

此文章参考文章:
https://www.jianshu.com/p/1dae6e1680ff
欢迎大家讨论~