2006年,公司被公司收购了。这直接导致Jboss产品结构调整,并将以前收费的Jboss AS文档改为免费。本次集群试验的最初依据就是由此得到的。

但这份官方文档并不可靠,在一些关键配置上含混不清,而且夹杂了很多适用于过去版本、现已作废的Jboss集群配置内容。这导致本次jboss集群 配置试验很大程度上是依靠猜测和反复尝试完成的。究其原因,是因为Jboss的集群特性尚处于发展之中,Jboss开发者还在不停地修改、完善、增加特 性,版本间的变化很大,文档的更新速度和质量难以保证。所以,提醒各位对官方文档要认准版本,只可参考,切忌尽信.切切.

集群概念

集群(Cluster)是一组计算机节点的集合,它们作为一个整体向用户提供一组网络资源。一个理想的集群对用户是透明的。用户由单一入口访问集群 的资源,从来不会意识到集群中的节点。在他们看来,集群是一个系统,而非多个计算机系统。集群还应该支持随意增加和减少集群系统的节点,而这同样不会影响 到用户的访问。

集群分类

习惯上,把集群分为高可用(High Availability,简称HA)集群和高性能计算(High Perfermance Computing,简称HPC)集群两类。

HA集群的目标是提高系统的可使用性(availability),即可靠性(reliability)和可维护性(maintainability)。请不要将集群中的可使用性(availability)与UE和交互设计中的可用性(Usability)混淆。

HA集群的核心是防止单点失效,这一般是通过失败转移来实现的,即在一个节点失效后由另一个节点接替服务。不丢失用户状态。HA集群的其他主要特性还包括负载均衡、session同步等。我们使用的SQL Server数据库的双机热备和Oracle的RAC都属于HA集群。

HPC集群采用并行计算技术提供超大规模计算和存储能力,多数超级计算机都是HPC集群。这不是我们关注的集群。

Jboss集群架构

Jboss集群是HA集群。

Jboss集群有2种架构。一是客户端拦截器(Client-side interceptor)架构,一是负载均衡器(Load balancer)架构。

客户端拦截器架构适于用C/S结构,负载均衡器架构适用于B/S结构。本文只叙述负载均衡器架构的Jboss集群。

负载均衡器架构由负载均衡器和n个集群节点组成。每个节点是一个Jboss服务器实例。负载均衡器是全局唯一的前置机, 全部用户请求都发到负载均衡器,由其转发到各节点。当负载均衡器发现一个节点失效后,会将请求转发到另一个节点上,从而保证服务得以延续。负载均衡器同时 负责加权静态负载均衡调度。总之,负载均衡器的健康程度决定了集群的全局健康度,负载均衡器失败将导致集群全部失效。这是前置机架构集群的主要潜在问题。

Jboss的负载均衡器架构集群实际是由Tomcat的HTTP集群实现的。Jboss有自己的负载均衡器,但效果不佳,官方文档没有介绍,几乎没有人使用。一般情况下,都是与一样采用apache+mod_jk作为负载均衡器。下文叙述的都是基于这种架构。

mod_jk是apache的一个插件,负责apache与tomcat之间的通讯,是jboss集群(tomcat集群)的关键。

Jboss版本的选择

目前,Jboss主要有3、4、5三个版本系列。

Jboss 5目前只有2个beta版,实用尚需时日。

Jboss 3的最后版本是2006年3月更新的3.2.8.SP1。随着Jboss 4日益成熟和Jboss 5的开发,已经停止更新1年多的Jboss 3逐渐淡出历史舞台。

Jboss 4最新版本依次是4.2.1.GA、4.2.0.GA和4.0.5.GA。但官方网站提供的Jboss集群文档只更新到4.0.5 GA,所以选择Jboss 4.0.5 GA实现Jboss集群

Jboss各版本的安装和配置并不相同.不但Jboss 3和Jboss 4的配置文件完全不同,各小版本间也有细微的差别.在集群中,Jboss、apache、mod_jk之间也存在着特定版本才能配合的情况。所以,为避免困扰,请严格按照以下版本安装软件:

JDK 1.5.0.12

Jboss 4.0.5 GA

apache 2.2.4

apache mod_jk 1.2.23

注意,mod_jk有1.x和2.x两个版本系列。mod_jk 2.x已经停止开发,不能使用。很多人凭直觉认为mod_jk 2.x肯定比mod_jk 1.x好,结果走了弯路。