CDN架构

CDN公司在整个互联网中部署了数以百计的节点(Cache服务器集群)。这些Cache服务器都分布在各个网络运营商的IDC机房中,位置尽量靠近用户网络。CDN系统将内容从源站复制到各个节点,在内容提供者更新内容时,CDN系统将更新后的内容重新分发到各个节点。当用户请求内容时,CDN系统将选择一个最优的节点向用户提供内容。这个挑选最优节点的过程,就是负载均衡。而这个最优节点,可能最接近用户,或者有一条与用户之间条件最好的路径。

一、功能架构

CDN架构_第1张图片

1、分发服务系统

  • 其基本的工作单元就是各个Cache服务器。负责直接响应用户请求,将内容快速分发到用户;同时还负责内容更新,保证和源站内容的同步。
  • 根据内容类型和服务种类的不同,分发服务系统分为多个子服务系统,如:网页加速服务、流媒体加速服务、应用加速服务等。每个子服务系统都是一个分布式的服务集群,由功能类似、地域接近的分布部署的Cache集群组成。
  • 在承担内容同步、更新和响应用户请求之外,分发服务系统还需要向上层的管理调度系统反馈各个Cache设备的健康状况、响应情况、内容缓存状况等,以便管理调度系统能够根据设定的策略决定由哪个Cache设备来响应用户的请求。

2、负载均衡系统:

  • 负载均衡系统是整个CDN系统的中枢。负责对所有的用户请求进行调度,确定提供给用户的最终访问地址。
  • 使用分级实现。最基本的两极调度体系包括全局负载均衡(GSLB)和本地负载均衡(SLB)。
  • GSLB根据用户地址和用户请求的内容,主要根据就近性原则,确定向用户服务的节点。一般通过DNS解析或者应用层重定向(Http 3XX重定向)的方式实现。
  • SLB主要负责节点内部的负载均衡。当用户请求从GSLB调度到SLB时,SLB会根据节点内各个Cache设备的工作状况和内容分布情况等对用户请求重定向。SLB的实现有四层调度(LVS)、七层调度(Nginx)和链路负载调度等。

3、管理系统:

  • 分为运营管理和网络管理子系统。
  • 网络管理系统实现对CDN系统的设备管理、拓扑管理、链路监控和故障管理,为管理员提供对全网资源的可视化的集中管理,通常用web方式实现。
  • 运营管理是对CDN系统的业务管理,负责处理业务层面的与外界系统交互所必须的一些收集、整理、交付工作。包括用户管理、产品管理、计费管理、统计分析等。

4、小结:

  • CDN系统中,分发服务器系统、调度控制系统和运营管理系统都是分级分布式部署的。CDN系统本身就是一个具有中央控制能力的分布式服务系统。

二、部署架构

CDN架构_第2张图片

1、层级划分:

  • CDN系统中,直接面向用户,负责给用户提供内容服务的的Cache设备都部署在整个CDN网络的边缘位置,所以将这一层称为边缘层。
  • CDN系统中,中心层负责全局的管理和控制,同时也保存了最多的内容Cache。在边缘层设备未能命中Cache时,需要向中心层设备请求;而中心层未能命中时,则需要向源站请求。不同的CDN系统设计存在差异,中心层可能具备用户服务的能力,也可能只会向下一层提供服务。
  • 如果CDN系统比较庞大,边缘层向中心层请求内容太多,会造成中心层负载压力太大。此时,需要在中心层和边缘层之间部署一个区域层,负责一个区域的管理和控制,也可以提供一些内容Cache供边缘层访问。

2、边缘节点的负载均衡:

  • CDN架构_第3张图片
  • Cache设备和负载均衡设备的连接方式有如上两种:穿越方式和旁路方式。
  • 穿越方式下,SLB一般使用L4-7层的交换机实现,SLB对外提供可访问的公网IP,而各个Cache设备只分配私网IP。一个SLB下挂载的所有Cache设备构成一个服务集群。所有的用户请求都要先经过SLB,再由SLB将请求向Cache设备转发。SLB对外部用户屏蔽了Cache地址,具有较好的安全性和可靠性;但是在节点负载较大时,SLB设备容易成为性能瓶颈。另外,可以通过软件方式实现穿越方式:LVS(四层)和Nginx(七层)。
  • 旁路模式下,SLB和Cache设备都分配有外网IP,使用并联方式连接。用户请求先到达SLB,SLB再将请求重定向到Cache设备。此种方式部署灵活,扩展性好。但是SLB和Cache设备都直接面向用户,并且需要应用层重定向,安全性较差。

你可能感兴趣的:(cdn,读书笔记)