跳到主要内容

CDN原理

CDN(Content Delivery Network, 内容分发网络), 将源站的内容发布到接近用户的网络'边缘', 用户就可以就近获取所需数据, 不仅降低了网络的拥塞情况, 提高请求的响应速度, 也能够减少源站的负载压力.

简单的CDN流程

一个最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:

  1. 当用户点击网站页面上的内容URL, 经过本地DNS系统解析, DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器
  2. CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户
  3. 用户向CDN的全局负载均衡设备发起内容URL的访问请求
  4. CDN全局负载均衡设备根据用户IP地址, 以及用户请求的内容URL, 选择一台用户所属区域的区域负载均衡设备, 告诉用户向这台设备发起请求.
  5. 区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务. 选择的依据包括:
    1. 根据用户IP地址, 判断那一台服务器距离用户最近
    2. 根据用户所请求的URL中携带的内容名称, 判断那一台服务器上有用户所需内容;
    3. 查询各个服务器当前的负载情况, 判断那一台服务器还有服务能力
    4. 基于以上这些条件的综合分析, 区域负载均衡设备会想全局负载均衡设备返回一台缓存服务器的IP地址.
  6. 全局负载均衡设备把缓存服务器的IP地址返回给用户
  7. 用户向缓存服务器发起请求, 缓存服务器响应用户请求, 将用户所需内容传送到用户终端
  8. 如果这台缓存服务器上没有用户想要的内容, 而区域均衡设备依然将它分配给了用户, 那么这台服务器就要向上一级缓存服务器请求内容, 直至追溯到网站的源服务器, 将内容拉倒本地.

image

CDN 关键组件

LVS: 四层均衡负载

  • DR模式
  • 双LVS做 Active-Active 互备
  • 均衡算法采用 wrr

Tengine: 七层负载均衡

阿里的基于Nginx开发的高性能HTTP服务器.

  • 主动健康检查
  • SPDY v3 支持

Swift: HTTP 缓存

  • 高性能Cache
  • 磁盘(SSD/SATA)

CDN 优点

  • 加速网站的访问
  • 实现跨运营商, 跨地域的全网覆盖
  • 保障网站安全
  • 异地备援
  • 解决成本投入
  • 专注业务本省

应用场景

  • 网站/应用加速
  • 视音频点播/大文件分发加速
  • 视频直播加速
  • 移动应用分发加速

常见名词

  • Origin Server 源站: 做CDN之前的客户真正的服务器
  • Last Mile: 最后一公里, 也就是用户到他所访问的CDN服务器之间的路径
  • 域名: internet 网络上的一个服务器或一个网络系统的名称
  • CNAME记录: Canonical Name, 当DNS系统在查询CANME左面的名称的时候, 都会转向CNAME右面的名称再进行查询, 一直追踪到最后的PTR或者A名称, 成功查询后才会做出回应, 否则失败
  • CNAME域名: CDN的域名加速需要用到CNAME记录.
  • DNS: 域名解析服务
  • 边缘节点: CDN节点, Cache节点, 是相对于网络复杂结构的一个概念, 指距离最终用户接入具有较少中间环节的网络节点, 对最终接入用户有较好的响应能力和连接速度.
  • cache: 高速缓冲存储器, 一种特殊的存储器子系统, 其中复制了频繁使用的数据以利于卡US就访问.