JBOSS_5.0.0GA的集群搭建

JBOSS_5.0.0GA的集群搭建
JBOSS_5.0.0GA的集群搭建

JBOSS 5.0.0GA的集群搭建

JBOSS 5.0.0GA的集群搭建(一)

https://www.360docs.net/doc/6610494253.html,/topic/345952

最近看了一下JBOSS-5.0.0GA的集群搭建的文档,于是把自己的理解发上来和大家共享一下。不过还是有好多问题需要和大家,共同讨论一下

下面的JBOSS-5.0.0GA的集群部署的官方文档,不过有点旧,和实际情况有些出入,

https://www.360docs.net/doc/6610494253.html,/file-access/default/members/jbossas/freezone/docs/Clustering_Guide/5 /html/index.html

我采用的是apache2.27 JK_mod1.2.7

apache的下载地址:https://www.360docs.net/doc/6610494253.html,/download.cgi

JK_mod的下载地址:https://www.360docs.net/doc/6610494253.html,/dist/tomcat/tomcat-connectors/jk/binaries/

安装完毕后开始进行配置

首先,编辑apache的conf/http.conf 文件,保证apache加载jk_mod文件,再文件中加入

然后再apache的conf/http.conf 创建一个新的文件名字要和上面的mod-jk.conf 一致,再文件中计入下面的代码:

这里注意这句话,要把你下载的mod_jk的文件拷贝到apache安装目录的modules/下名字要和mod_jk.so一致

然后,我们再apache安装目录下的conf/创建uriworkermap.properties文件,来配置哪些请求由JK处理哪些请求让APACHE处理,再文件中加入下面的代码

然后再apache安装目录下conf/workers.properties加入负载均衡的配置代码

到此JK_mod 的配置就完成了,下面配置JBOSS的,这里注意这里文档说的有些问题,因为JBOSS-5.0.0GA的目录有些变化文档上说的是下面的路径

JBOSS_HOME/server/all/deploy/jboss-web.deployer/server.xml

但正确的应该是

JBOSS_HOME/server/all/deploy /jbossweb.sar/server.xml

配置修改如下:注意这里面的jvmRoute="node1"的名字要和jk_mod里面的一致否则会有问题

到这里JBOSS的基本配置就完成了,JBOSS-5.0.0GA的session共享是默认的配置的

只要再APPLICATION中加入下面的代码就可以

这里还要注意一点:是JMS的ServerPeerId不能一样,否则启动时会报错,但不影响集群的正常运行(除JMS外)

要修改JBOSS_HOME/server/all/deploy/messaging/messaging-service.xml文件中的ID,要求是数字并且保证集群每个JBOSS的ID不一样

启动的JBOSS

run.sh -c all -b 192.168.2.100 注意IP地址要和JK_MOD配置的一致

我把我写的简单的测试放入到附件中,测试的时候先打开一个node1 做登陆

然后启动第二个node2 然后停掉node1 还是登陆状态http://localhost/cluster-test/index2.jsp

JBOSS的配置缺少了集群的hot-deploy 因为JBOSS5里面已经没有farm service 了,找了很多文档,没有找到解决的办法,希望和大家共同研究。

JBOSS 5.0.0GA的集群搭建(二)--同一网络内部署两个集群

在一个网络内部署JBOSS 的不同集群需要了解两个基本的概念:HAPartition 和JGroups Channel

HAPartition 是一个基础服务用于逻辑上的通信,负责处理各个node见再同一个集群中的通信,即使处于同一个HAPartition(以及处于同一个JGroups Channel 的)下的node才可以通信

参考文档:

https://www.360docs.net/doc/6610494253.html,/file-access/default/members/jbossas/freezone/docs/Clustering_Guide/5/ht ml/ch01s03.html

JGroups Channel 则是物理层的基础服务,负责各个node的物理层的通信,也就是说HAPartition是再JGroups Channel之上的一层,这是我的理解。

参考文档:

https://www.360docs.net/doc/6610494253.html,/file-access/default/members/jbossas/freezone/docs/Clustering_Guide/5/ht ml/jbosscache-jgroups.html

再了解了两个基础只是后,可以开始配置不同的集群了,现在有两个方案可以选择,一是再逻辑上分开,即是两个集群物理上可以通信,在逻辑上处于不同的HAPartition;二是处理不同的物理层(并不是网络分开,而是处于不同JGroups Channel,广播地址上分开)

方案一:

其实配置方式很简单和JBOSS-5.0.0GA的集群搭建(一)的配置一样就是启动方式改变

Java代码

./run.sh -c all -b 10.147.128.116 -g MyPartition

./run.sh -c all -b 10.147.128.68 -g MyPartitionTwo

./run.sh -c all -b 10.147.128.116 -g MyPartition

./run.sh -c all -b 10.147.128.68 -g MyPartitionTwo

采用这种方式启动JBOSS 就可以,这样会发现再再HAPartition启动时不会发现对方的存在,但物理上会发现对方。

这里我们可以测试一下还是采用JBOSS-5.0.0GA的集群搭建(一)的测试包进行测试发现session已经无法共享,说明两个JBOSS已经处于不同cluster中

方案一:

其实配置方式很简单和JBOSS-5.0.0GA的集群搭建(一)的配置一样就是启动方式改变

Java代码

./run.sh -c all -b 10.147.128.116 -g MyPartition -u 233.3.4.6

./run.sh -c all -b 10.147.128.68 -g MyPartitionTwo -u 233.3.4.7

./run.sh -c all -b 10.147.128.116 -g MyPartition -u 233.3.4.6

./run.sh -c all -b 10.147.128.68 -g MyPartitionTwo -u 233.3.4.7

采用这种方式启动JBOSS 就可以,-u 改变JBOSS集群的广播地址这里如果分区一样也没有关系

这里我们可以测试一下还是采用JBOSS-5.0.0GA的集群搭建(一)的测试包进行测试发现session已经无法共享,说明两个JBOSS已经处于不同cluster中

注意,这里如果跑多个集群再同一个网络要注意客户端HA-JNDI的配置需要指定下面几个参数:

jnp.partitionName :集群的partition的名字

jnp.discoveryGroup :集群的广播地址

jnp.discoveryPort :集群的端口

这几个参数需要在Properteis 中指定否则会无法连接到HA-JNDI,参考文档如下:

https://www.360docs.net/doc/6610494253.html,/community/docs/DOC-11462

有理解有问题的地方还请各位指正

相关主题
相关文档
最新文档