JBOSS5 集群配置

转载:http://blog.sina.com.cn/s/blog_4a2cf9700100olbd.html

初始化安装

在所有的服务器上安装JBossAS

在服务器上安装JBoss AS.最简单的方法就是把下载的JBoss解压缩出来就可以.

如果想要在一台服务上运行多个JBossAS实例,你可以把JBoss分别安装在文件系统的不同位置,也可以仅拷贝all目录下的配置内容,例如JBoss的解压目录是/var/jboss,可以这样做

cd /var/jboss/server

cp -r all node1

cp -r all node2

在每个节点,决定要绑定的IP地址

当你运行JBoss,不管是不是集群模式,你都需要告诉JBoss他需要绑定到哪个地址来进行监听通讯(默认地址是Localhost,这个地址比较安全但是不是特别有效,特别是在配置集群环境的时候),所以你需要确定使用什么地址。

保证多播可用

JBossAS默认使用UDP多播来进行集群服务器间通讯的,保证每个服务器所在的网络内的路由器、交换机都配置支持多播,如果你想要在一台服务器上运行多个节点服务,那就需要保证当前服务器系统的路由表中包含一个多播路由地址。可以参考介绍JGroups的文档来了解多一些内容,JGroups文档地址http://www.jgroups.org。这里面还包含一些如何使用JGroup分析工具来判断多播是否有效。

NOTE

JBossAS集群不是必须使用UDP多播,它也可以配置成使用TCPunicast来进行节点间交互。

为每个节点确定一个唯一的“ServerPeerID”

JBoss消息集群需要这个唯一ID,如果不运行JBoss消息的话就可以忽略这个配置(例如你可以将JBM从服务器配置的deploy目录中移出)。JBM需要在每个节点又一个唯一的编号。


除了以上这些步骤,下面有两个可选的步骤,用来帮助你确保你的集群同运行在同一网络中的其他的JBoss集群区分开来。

为你的集群取个唯一的名字

JBossAS集群的默认名称是”DefaultPartition”。为你的环境中的不同集群取不同的名称。例如”QAPartition”或者”BobsDevPartition”。名称中”Partition”的使用不是必须的。如果从效率考虑最好短一些,因为它将被包含在所有集群内交互的消息中。

为你的集群选择一个唯一的多播地址

JBossAS默认使用UDP多播放时来进行节点间交互。为你使用的每个群选择一个为一个的多播地址。一个好的多播地址是类似239.255.x.y的方式。http:/

/www.29west.com/docs/THPM/multicast-address-assignment.html[http://www.29west.com/

docs/THPM/multicast-address-assignment.html]将为你提供如果选择好的多播地址的建议。

也可以参考Section 10.2.2, “Isolating JGroups Channels”来寻找更多的建议


JBossAS以集群方式加载

在局域网环境中以集群方式启动JBossAS的最简单方式就是使用 “–c all”参数来启动服务实例。这些服务器实例会自动组成一个集群。

让我们看一些不同情况下的安装方法。在每个情况下我们都只创建一个有两个节点的集群,第一个节点的”ServerPeerID”1,第二个节点的是2。我们把我们的群命名为”DocsPartition”,使用239.255.100.100这个多播地址。两个节点的群不代表是各种情况下的最优选择,他仅仅是完成这个例子的最简单的配置。

场景1:各节点在不同机器上

这是最常见的使用场景。假设两台机器分别叫做”node1”与”node2”node1的地址是192.168.0.101node2的地址是192.168.0.102,他们的”ServerPeerID”分别是12。假设这两个机器得Jboss都装在/var/jobss目录下

节点1加载过程

Cd /var/jboss/bin

./run.sh –c all –g DocsPartition –u 239.255.100.100 \

-b 192.168.0.101 –Djboss.messaging.ServerPeerID=1

节点2只有-b参数与ServerPeerID参数不同

Cd /var/jboss/bin

./run.sh –c all –g DocsPartition –u 239.255.100.100 \

-b 192.168.0.102 –Djboss.messaging.ServerPeerID=2

参数-c使用all配置项,该配置项包含集群的配置项,参数-g设置集群的名称。参数-u设置集群内节点交互的多播地址。参数-b设置需要绑定的地址,参数-D设置系统属性jboss.messaging.ServerPeerId的值,JBoss消息需要这个值在群中要求唯一。

场景2:在单台有两个IP地址的服务器上搭建2个节点

在同一台设备上运行多个节点这在开发环境中是经常出现的。在这种情况下,该服务器有多个地址,例如IP地址,这样就可以让多个JBoss实例分别绑定到不同的地址上,防止在地址绑定时出现端口冲突的问题。

假设这个服务器被分配了192.168.0.101192.168.0.102两个地址。与场景1不同,我们需要保证每个AS实例都需要有自己的工作区域。所以不能使用all配置项,我们使用node1node2配置项,这两个都是从all中拷贝过来的。

打开一个控制窗口运行第一个实例:

cd /var/jboss/bin

./run.sh –c node1 –g DocsPartition –u 239.255.100.100 \

-b 192.168.0.101 –Djboss.messaging.ServerPeerID=1

节点2只有-b参数与-c参数不同,同时ServerPeerID的值不同

Cd /var/jboss/bin

./run.sh –c node2 –g DocsPartition –u 239.255.100.100 \

-b 192.168.0.102 –Djboss.messaging.ServerPeerID=2

场景3:在一台只有一个地址的服务器上安装两个节点实例

这个与场景2类似,不同时着台机器只有一个地址。两个实例不能同时绑定到到同一个地址和端口,所以我们需要通知JBoss启动实例时绑定不同的端口。可以通过配置jboss.service.binding.set系统参数来配置,这个参数由ServiceBindingManager服务提供。

打开一个控制窗口运行第一个实例:

cd /var/jboss/bin

./run.sh –c node1 –g DocsPartition –u 239.255.100.100 \

-b 192.168.0.101 –Djboss.messaging.ServerPeerID=1 \

-Djboss.service.binding.set=ports-default

节点2

cd /var/jboss/bin

./run.sh –c node2 –g DocsPartition –u 239.255.100.100 \

-b 192.168.0.102 –Djboss.messaging.ServerPeerID=2

-Djboss.service.binding.set=ports-01

这样可以通知ServiceBindingManager在第一个节点使用默认端口(例如JNDI1099)。第二个节点使用”prots-01”绑定设置,默认是在各个默认端口的基础上累加100(例如JNDI1199)。可以从conf/bootstrap/bindings.xml文件中看到更多的ServiceBindingManager配置项。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值