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 里可用的配置属性。
 
u   PartitionName  是用来指定节点名称的可选属性。它的缺省值是 DefaultPartition
u   NodeAddress   是一个可选属性,指定这个节点所绑定的IP地址。
u   DeadlockDetection  是用来通知 Jgroups 为每个请求运行消息死锁检测算法(message deadlock detection algorithms)的可选布尔值属性。它的缺省值是 false
u   StateTransferTimeout  是用来指定跨群集的状态复制(state replication)的超时时间(以毫秒为单位)的可选属性。它的缺省值是 30000
u   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 地址的列表。

本文转自xudayu 51CTO博客,原文链接:http://blog.51cto.com/xudayu/64728,如需转载请自行联系原作者

相关文章
|
缓存 负载均衡 应用服务中间件
|
Java 应用服务中间件 Linux
|
负载均衡 算法 应用服务中间件
|
负载均衡 应用服务中间件 容器