CDN缓存服务器负载均衡集群《CDN技术详解》

1. 集群系统

1.1 集群系统分类

服务器集群的分类,能够分为三种分别是计算集群、负载均衡集群、高可用集群,下面分析对计算集群、负载均衡集群和高可用集群作以详细讲解。web

根据用途的不一样,咱们把服务器集群分为以下几类。
(1)计算集群
服务器计算集群一般被用于承载计算密集型任务,而并不用于I/O密集型的应用场景(例如Web服务或者数据库)。这类计算集群是以并行计算为基础的,它对外而言就好像是一台性能强大的超级计算机。数据库

(2)负载均衡集群
负载均衡集群的关键在于可以使多台彼此互联的服务器共同分担计算任务,即任务负载能够在集群中被尽量地平均分配到多台服务器上处理,从而避免出现集群中某几台服务器超载而其余服务嚣闲置的状况,有效地改善集群性能。缓存

集群中的负载一般包括计算任务处理负载网络I/O流量负载两类。对于计算任务处理负载,负载均衡集群可以使用同一组计算应用程序为大量用户提供服务,其中每一个节点均可以承担必定的处理负载,而且能够在节点之间动态分配负载,实现负载均衡;对于网络I/O流量负载,当网络服务程序接收了高入网流量而没法及时处理时,相关流量会被分发给在其余服务器节点上运行的网络服务程序,同时能够根据每一个节点上不一样的可用资源或网络环境进行优化。服务器

(3)高可用集群
高可用集群中的部分服务器发生故障时,集群管理系统将及时发现故障并将由该部分零载的任务从新分派到其余正常工做的服务器上。其关键在于可以在系统高速运行的过程当中尽量快速地对系统故障作出响应。网络

高可用机制可以有效地提升集群运行的可持续性,可以在集群发生故障时确保用户体验的一致性。同时,高可用集群中单台服务器的高可用性要求被下降,有助于下降系统成本。架构

在上述集群的分类中,高可用机制是确保集群运行质量的重要方法,所以一般是交融在其余两类集群中一块儿被实现的。而计算集群和负载均衡集群也有必定的相似性,例如都是在多个服务器节点间分发计算负载,可是它们的最大区别在于计算集群更多的是用于承载跨多个节点的并行计算程序,而负载均衡集群中每一个服务器节点上一般是运行独立的软件系统,而与其余节点少有通讯。所以,从这个意义来看,CDN的节点系统可归类为一种典型的负载均衡集群系统。负载均衡

1.2 集群系统的结构

典型的服务器集群的系统结构如图:
在这里插入图片描述
如图所示,服务器集群的系统结构主要分为4个层次。
(1)网络层:网络是构成集群的基础,由于构成集群的多台服务器是经过网络互联的。网络层的关键技术包括网络互联结构、网络通讯协议、信号传输技术等。
(2)节点服务器操做系统层:集群中的各台服务器是集群计算能力的基本单元,它们具备必定的自治能力,可以独立完成集群分配到本地的任务,其关键技术主要包括高性能服务器架构、高性能操做系统内核技术等。
(3)应用层:应用层由执行负载任务的软件构成,可在集群管理层的干预下实现相应应用功能。其关键技术包括并行程序开发环境、各种解决任务负载的串/并行应用等。
(4)集群管理系统层:集群管理系统层是服务器集群的核心组件,是协调集群资源使之可以高效协同完成任务的关键。它的主要任务是对集群内的服务器资源及其上运行的任务进行管理和调度,以实现集群内负载的均衡,从而避免个别节点成为瓶颈,最大程度地发挥集群的总体性能。对于不一样的集群类型,其集群管理系统的功用也有所不一样,在计算集群中,其主要用途是为应用提供并行计算环境,而在负载均衡集群中,其主要用途是调度各个应用到合适的服务器上运行。svg

相比较其余层次,集群管理层是集群所特有的功能与技术的体现。正是因为集群管理系统对多台服务器的统筹、协调、管控和有机组织,才使之可以对外以一台服务器的形象展示,才产生了“集群”的概念。集群管理层的完善程度,直接决定着集群系统的性能、易用性、稳定性、可扩展性等诸多关键指标。性能

2. CDN缓存服务器负载均衡集群

CDN缓存服务器是典型的负载均衡集群系统,咱们知道内容缓存技术,核心思想是在内容服务器和用户之间架设缓存服务器,将用户最近访问过的煤体数据缓存在离客户较近的地方,以供后续重复访问使用。优化

当用户访问量较大时,单台缓存设备在处理繁重的内容分发任务时会在处理能力、吞吐能力等方面造成严重的性能瓶颈。在这种状况下,缓存服务器集群就是解决相关问题的有效手段。在用户和内容服务器之间部署缓存服务器集群,可以充分利用集群中各个节点造成的强大计算能力,同时各节点能够被并行访问,可以有效改善系统吞吐率。除了性能的改善,多台缓存服务器构成的集群在存储容量等方面的优点,使其在提升用户请求命中率方面有很大的提高。相关的系统示意图如图所示。
缓存服务器集群部署

  • 对于CDN系统中的缓存服务器集群而言,各台服务器之间须要知道彼此的内容缓存状况以提升访问效率,所以集群内部的协同交互是很是重要的。
  • 在对外提供服务时,针对各台服务器上的处理能力进行必要的负载均衡从而合理分担用户请求。