JBOSS4.0.2 HTTP集群配置之一:JBOSS集群介绍

来源:互联网 发布:矩阵应用题繁殖 编辑:程序博客网 时间:2024/05/16 18:34

Jboss 支持如下类型的cluster:EJB、HTTP、JNDI、JMS,本文主要了解HTTP cluster。JBOSS的HTTPcluster实现了两项任务:会话状态复制(Session state replication)与负载平衡(Load-balance ofincoming invocations)。
会话状态复制用来复制集群中不同节点上客户端的连接状态,以实现当集群中的某一节点发生故障时,集群中的其它节点能够接管连接到故障节点的客户端请求,接管过程对客户端透明,客户端并不知道是否发生了服务提供者的转移。会话状态复制由JBOSS本身进行控制,当JBOSS以all的配置方式运行时,默认已经启动了会话状态复制。
负载均衡顾名思义,就是希望集群中的节点均衡的提供服务,以防止某一节点负载过中,导致连接到该节点的请求不能在期望的时间内完成,而其它的节点又存在大量的资源空闲。负载均衡并不由JBOSS本身控制,它需要额外的软件或硬件交换机或路由器进行负载均衡控制。本文是通过Apache与mod_jk进行负载均衡配置。负载均衡可以选择针对每个请求的均衡,或者是针对每个用户的均衡。选择不同的粒度,需要不同的状态同步方式。
1、基于请求的负载均衡
该种方式下,负载均衡器 (loadbalancer)会根据各个node的状况,把每个httprequest进行分发。使用这样的均衡策略,就必须在多个node之间复制用户的session,实时保持整个cluster的用户状态同步,这种操作被称为session复制 (sessionreplication)。Jboss的实现原理是使用拦截器(interceptor),根据用户的同步策略拦截request,做同步处理后再交给server产生响应。
该方法的优点是客户不会被绑定都具体的node,只要还有一个node存活,用户状态都不会丢失,cluster都能够继续工作。缺点是node之间通信频繁,响应速度有影响,多并发、高频操作的情况下性能下降比较厉害。
2、基于用户的负载均衡
该种方式下,当用户发出第一个request后,负载均衡器动态的把该用户分配到某个节点,并记录该节点的jvm路由,以后该用户的所有request都会被绑定这个jvm路由,用户只会与该server发生交互,这种策略被称为粘性session(sticky-session)。
该方法的优点是响应速度快,多个节点之间无须通信。缺点也很明显,某个node死掉以后,它负责的所有用户都会丢失session。