1 集群概念 集群(Cluster)是一组计算机节点的集合,它们作为一个整体向用户提供一组网络资源。一个理想的集群对用户是透明的。用户由单一入口访问集群的资源,从来不会意识到集群中的节点。在他们看来,集群是一个系统,而非多个计算机系统。集群还应该支持随意增加和减少集群系统的节点,而这同样不会影响到用户的访问。 1.1 集群分类 习惯上,把集群分为高可用(High Availability,简称 HA )集群和高性能计算(High Perfermance Computing,简称 HPC )集群两类。 1) HA集群的目标是提高系统的可使用性 (availability),即可靠性 (reliability)和可维护性 (maintainability)。请不要将集群中的可使用性(availability)与 UE和交互设计中的可用性(Usability)混淆。HA集群的核心是防止单点失效,这一般是通过失败转移来实现的,即在一个节点失效后由另一个节点接替服务。不丢失用户状态。HA集群的其他主要特性还包括负载均衡、session同步等。我们使用的 SQL Server数据库的双机热备和 Oracle的 RAC都属于 HA集群。 2) HPC集群 采用并行计算技术提供超大规模计算和存储能力,多数超级计算机都是 HPC集群。这不是我们关注的集群。 1.2 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集群)的关键。 1.2.1 Jboss版本的选择 目前,Jboss主要有3、4、5三个版本系列。 1...