Knight of the round table

wansong

JBoss企业级应用服务平台群集指南(一)

JBoss企业级应用服务平台群集指南(一)
2008-03-08 09:39:43
标签:jboss 群集
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。

1.集群

——用JBoss群集实现高可用性企业服务

1.1 前言

群集系统(Clustering)允许我们在多台平行的服务器(群集节点)上运行一个应用程序。负载分布在不同的服务器上,即使其中任何一台崩溃,应用程序还是可以在其他群集节点(cluster nodes)上运行。群集对于可扩展性企业级应用程序是很关键的,因为你简单地把更多节点加入到群集系统里就可以提高性能。
JBoss 应用服务器(AS)缺省支持群集系统。最简单的启动 JBoss 服务器群集的方法就是在同一本地网络里启动多个 JBoss 实例,每个实例都可以用 run -c all 命令来运行。这些按照 all 配置文件启动的实例,可以检测到对方而自动组成一个群集系统。
在本章的第一部分,我们将讨论 JBoss 群集服务的基本概念。在阅读本章后面的内容之前,先理解这些概念是很重要的。在这部分内容之后,我们将介绍怎样为特定类型的应用程序配置群集系统。
 

1.1.1   群集系统的定义

群集系统是节点(node)的集合。在 JBoss 群集系统里,节点是一个 JBoss 服务器实例。因此,为了建立一个群集,JBoss 实例必须组合在一起(通称"partition")。在同一个网络里,我们可能有不同的群集。为了区分,每个群集都必须有一个唯一的名字。
 
图1.1“集群服务节点”, 展示了网络里的 JBoss 服务器实例被分到三个群集系统里,有的群集系统只有一个节点。在任何时候,你都可以在群集里加入或删除节点。
 
 
                                图 1.1. 集群和服务节点
  
每个 JBoss 服务器实例(节点)在 deploy/cluster-service.xml 文件的 ClusterPartition MBean 里指定了它所加入的群集(也就是 partition)。所有具有相同 ClusterPartition MBean 配置的节点加入到同一个群集系统里。因此,如果你想把同一个网络里的 JBoss 节点分开到两个群集里,你可以使用两个不同的 ClusterPartition MBean 配置,每个节点可以根据它所需要加入的群集来选择其中一个配置。如果节点启动的时候,它指定的群集不存在,这个群集将被创建。相同地,当群集系统的所有节点都被删除后,这个群集也将被删除。
 
下例展示了标准 JBoss AS 发行版本里的 MBean 的定义。如果你在本地网络里用缺省的群集设定来启动 JBoss 服务器,你将得到一个叫 DefaultPartition 的缺省群集,它包括了所有作为节点的服务器实例。
在这里,我们忽略了这个群集的详细的 JGroups 协议配置(protocal configuration)。JGroups 处理节点之间底层的点到点通信,我们将在 Section 1, “JGroups配置”里讨论它的配置。下面的列表展示了 ClusterPartition MBean 里可用的配置属性。
 
PartitionName 是用来指定节点名称的可选属性。它的缺省值是 DefaultPartition。
NodeAddress 是一个可选属性,指定这个节点所绑定的IP地址。
DeadlockDetection 是用来通知 Jgroups 为每个请求运行消息死锁检测算法(message deadlock detection algorithms)的可选布尔值属性。它的缺省值是 false。
StateTransferTimeout 是用来指定跨群集的状态复制(state replication)的超时时间(以毫秒为单位)的可选属性。它的缺省值是 30000。
PartitionConfig 是一个用来为这个群集(Section 1, “JGroups 配置”) 指定 JGroup 配置选项的元素(element)。.
 
为了组成一个群集系统,它们必须有刚好一样的 PartitionName 和 ParitionConfig 元素。只改变其中一些而不是全部节点会导致群集的分离。通常来说,修改 ParitionConfig(即:地址/端口)而不是 PartitionName 来运行多个群集系统会比较容易,因为后者需要在其他配置文件里的多个地方修改。然而,在 4.0.2+ 以后的版本里,修改 PartitionName 反而更方便了。因为使用了 ${jboss.partition.name} 属性,它允许通过单个的 jboss.partition.name 系统属性来修改群集系统的名字。
 
你可以用浏览器访问群集系统里的任何 JBoss 实例的 JMX 控制台来查看当前的群集信息(如,[url]http://hostname:8080/jmx-console/[/url]),点击 jboss:service=DefaultPartition MBean(如果这个节点没有加入 DefaultPartition,你可以改变 MBean 名来反映群集名)。CurrentView 字段会显示当前群集的 IP 地址的列表。

posted on 2011-08-07 13:48 w@ns0ng 阅读(217) 评论(0)  编辑  收藏 所属分类: jboss


只有注册用户登录后才能发表评论。


网站导航: