39.2. J2EE集群

J2EE集群包括Web集群,JNDI集群,EJB集群,JMS集群等。当提及J2EE集群时,涉及的两个重要概念:负载均衡,失效转移。

39.2.1. 负载均衡

负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到集群中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡介于调用者和被调用者之间。如下图所示:

负载均衡器提供相应的算法(如随机算法,轮循算法,权重算法等)来分发和调度客户请求。目前存在各种类型的负载均衡器(硬件如:F5,软件如:apache server,微软的IIS等)。

39.2.2. 失效转移

失效转移是为了保证集群可用性的一个重要技术手段。当客户端发起请求,处理该请求的服务器出现故障,负载均衡器可以将请求透明的重定向到另一台可用的服务器上。如下图:

在请求重定向到其他服务器时,用户总希望看到一致的应用状态,这将意味着应用状态必须备份到集群的某个地方。不同的服务器对于应用状态的备份采用不同的备份策略,比如:多服务器备份,配对备份,中央服务器备份等。