J2EE集群概述

一、前言,当前的网络应用服务获取的数据量越来越大,用户对产品体验要求越来越高。因此,高可用性、良好的扩展性越来越重要,集群可以帮助我们实现高可用性、良好扩展性的系统。而J2EE 集群就是一种能够提供高可用性、可扩展性以及容错性的流行技术。

二、基本术语理解

1、高可用性:单机并不可靠,因为存在单点故障,若我们的系统能够保障7*24*360*..不间断的正常运行,则我们就能理解成系统具有高可用性,集群可以实现高可用性。

2、扩展性:系统能够适应用户量的快速增加,如果随着用户数量和数据的增加,系统可以通过增加硬件资源来解决,我们就可以理解成系统具有良好的可扩展性。

3、负载均衡:负载均衡是集群的一个关键技术,它通过将请求分发到不同的服务器,使得集群中的服务器的负担相对“均衡”,达到系统的高效处理。

4、容错:集群的容错功能就是可以确保请求得到的数据是正确的,哪怕是请求的服务器挂掉了。

5、失败转移:失败转移是容错的一种技术,就是处理请求的服务器节点处理失败后,能够将请求转移到另一个节点来处理。

6、幂等方法:一个方法使用同样的参数进行多次调用得到的结果都一样,即对该方法的调用次数不影响系统。

三、集群和分布式

集群通常包含“负载均衡”和“失败转移”。实现负载均衡和失败转移,在调用者和被调用者之间必须要有一个拦截器,拦截器能够将调用请求转移到其他的对象,只有那些可以部署在分布拓扑上的组件才可以被集群。当目标对象被客户端调用的时候,目标对象运行在自己的容器中(这就是为什么叫做分布式)。客户端和对象服务器之间通过常见的网络协议进行通信。这种特点使得有机会对于调用的路由进行干预,从而实现负载均衡和失败转移。

四、集群实现:集群也是分层次的。有WEB层的集群,EJB层的集群等。此处解释下WEB层集群。WEB层集群的主要工作是进行“负载均衡”和“失败转移”。

1、实现负载均衡:首先我们要实现负载均衡算法,常用算法有轮询、随机和权重。其次需要实现健康检查,一旦某个服务器处理请求失败,负载均衡器应能够检测到,停止向其发送请求。最后还要实现会话粘稠滞,会话状态就需要记录在某个地方,并且和的浏览器关联,以便于下次请求的时候能够很方便的取出来。

2、实现失败转移:若某个会话状态由于各种原因丢失掉了,会导致数据错误,所以我们需要实现失败转移。会话失败转移中我们需要考虑,标示会话状态和备份会话数据。其中备份会话数据的方式有数据库备份和内存复制,根据不同容器,实现方式不同。

 

posted @ 2014-03-04 20:45  P.D.P.D  阅读(227)  评论(0)    收藏  举报