--By 明军
安装jboss
从官网下载jboss-4.2.3.GA包解压到服务器的某一个路径如/anjutu/, 注意jboss默认目录default目录是不支持集群的,要使其支持集群,我们要将
$JBOSS_HOME/all/lib下的 jbossha.jar, jgroups.jar和jboss-cache-jdk50.jar 拷贝到$JBOSS_HOME/default/lib 目录下.
$JBOSS_HOME/server/all/deploy目录里的cluster-service.xml
和jboss-web.cluster.sar文件夹拷贝到$JBOSS_HOME/server/default/deploy目录下
jbossha.jar 用于加载org.jboss.ha.framework.server.ClusterPartition,
jgroups.jar 用于支持Jboss集群底层通信
jboss-cache-jdk50.jar 用于加载org.jboss.cache.aop.TreeCacheAop
假 设两台机器分别叫做”jipuNode1”与” jipuNode2”, jipuNode1的地址是192.168.1.235,jipuNode1的地址是192.168.1.126,他们的”ServerPeerID”分 别是1和2。假设这两个机器得Jboss都装在/anjutu/目录下
节点1加载过程
Sh /anjutu/jboss-4.2.3.GA1/bin/run.sh –c all
-b 192.168.1.126
节点2
Sh /anjutu/jboss-4.2.3.GA1/bin/run.sh –c all –g
-b 192.168.1.235
在两台机器上使用Myecplipse下的JBOSS也可以。
编辑192.168.1.235的%JBoss_Home%serveralldeployjboss-web.deployerserver.xml
修改下面代码:
<Engine name="jboss.web" defaultHost="localhost">
修改为:
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="jipuNode1">
其中 jvmRoute是用来让apache识别的节点名称,一个节点一个名称,注意不要有重复的(可以结合IP设置)。
同理编辑192.168.1.126的%JBoss_Home%serveralldeploy jipuNode1server.xml
注意把jvmRoute设置为node2,可以设置成别的只要和192.168.0.101的不重复就行,但是要和Apache的workers.properties下的配置一致。
代码基本上没有改动,只是在EJB接口的实现类上面加@Clustered即可。
连接EJB的jipu.url=192.168.1.126:1099,192.168.0.81:1099,有几个节点就配几个节点相应的IP。
当其中一个节点挂掉,容器会检测其Dead members。
测试日志:
17:07:38,446 INFO [DefaultPartition] Dead members: 1 ([192.168.0.81:1099])
17:07:38,446 INFO [DefaultPartition] New Members : 0 ([])
17:07:38,446 INFO [DefaultPartition] All Members : 1 ([192.168.1.126:1099])
17:07:38,725 INFO [TreeCache] viewAccepted(): [192.168.0.81:51159|4] [192.168.1.126:65509]