技术开发 频道

Web服务器集群体系结构

【IT168 技术文章】

    Web服务器集群系统是由分布在LAN或WAN上的多台Web服务器主机(同构的或异构的)相互联结而成的一种服务器体系结构,它采用负载均衡策略将到达的请求分配给集群中的某台服务器进行处理。下面具体介绍几种常见的Web服务器集群的体系结构。

    镜像站点

    镜像站点的体系结构属于一种每个单独的节点都分散于地理上不同位置的集群,其结构如图1所示。集群中每个节点具有不同的主机名(URL),但具有相同的镜像内容。用户直接从多个具有独立URL的站点中进行选择,并将HTTP请求发送给该镜像站点进行服务(如图1所示)。通常,用户可以选择一个地理上距离最近的集群节点以减少响应时间。

图1 地理上分散的镜像站点

    但是这种体系结构有其缺点。首先,Web服务器集群缺少对请求分配的控制,集群节点的选择仅依赖于客户的主观意志,但客户根本不清楚各节点的负载情况。其次,集群节点对于客户是可见的(非透明的),因此某一节点出现故障会影响客户感知的集群可用性。最后,各集群节点对于客户的可见性也具有潜在的安全方面的问题。

    基于DNS

    在Internet上寻址一个特定的主机有两种方法,一种是直接用它的IP地址,另一种方法是使用主机名。使用主机名进行寻址的客户在与Web服务器建立通信连接之前,必须向域名服务器(Domain Name Server, DNS)发送一个地址映射请求从而获得Web服务器的IP地址。DNS的作用是负责将URL中的主机名映射成IP地址。

图2 基于DNS的Web服务器集群的请求分配过程

    在基于DNS的集群体系结构中,集群所在域的授权域名服务器(称为“集群DNS”)向外部提供一个单一的URL主机名作为整个集群的虚拟接口,使得集群对用户端具有透明性。集群中的每台Web服务器都具有一个真实的IP地址。集群DNS作为集群系统的集中式请求调度器,在Web站点域名(URL)到服务器节点IP地址的映射过程中,能够选择集群中的任何节点作为请求分配的目的地。

    基于请求分配器

    与基于DNS的集群技术相对照,基于请求分配器(Dispatcher)的Web服务器集群能够完全控制所有到来的请求并且实现精细粒度的负载均衡。在基于请求分配器的集群系统中,前端的请求分配器作为到达请求的代理,负责集中地接收所有到达的HTTP请求,并且按照特定的负载均衡策略将客户的请求均衡、透明地分配给集群中的后端服务器。整个集群系统具有一个单一的虚拟IP地址,即集群地址,因此集群中的服务器对用户端是透明的。实际上,集群地址就是请求分配器的IP地址,即请求分配器为集群系统提供了一个单一的虚拟接口,使得整个集群对外部而言犹如一台单一的主机。

    在这种体系结构中,早期的研究或产品典型地采用第四层交换机(仅处理到达的请求分组)或TCP路由器(处理到达的请求分组和返回的应答分组)作为请求分配器,能够根据后端服务器的私有IP地址或MAC地址对之进行少有的识别,并在TCP层执行请求分配(即第四层处理)。所采用的典型的请求分配机制包括分组重写、分组转发、HTTP重定向等。最近的研究和产品已经开始使用第七层交换机(也称Web交换机或内容交换机)作为请求分配器,实现Content-aware(基于请求内容)的请求分配。

0
相关文章