javayoyo 发表于 2013-1-16 02:17:26

JBoss4.0.5集群实现---创建集群实例篇

按照 JBoss4.0.5集群实现--安装篇的方法我们在两台节点服务器中安装Jboss
 
 
环境:
IP                      hostname
192.168.11.200  node1.localdomain
192.168.11.202  node2.localdomain
 
注意JBoss群集通讯协议分为两种:Tcp和Udp
大型的JBoss集群使用UDP协议更好,可以减少网络流量。而对于小型的JBoss集群,使用TCP协议比较好,也比较安全。
下面的例子是UDP的,因为Jboss的ALL模式默认就是UDP的。如果想具体了解Jboss通讯协议配置请查看
cluster-service.xml
 
1.修改jboss启动脚本

http://dl.iteye.com/upload/attachment/370693/80c2eb8c-e483-3df1-9079-32f3ebb9d930.jpg
 
jboss安装时自带all、default、minimal三种配置,all支持集群,所以需要修改jboss启动脚本将配置变为all。
# vim /usr/local/jboss-4.0.5.GA/bin/jboss_init_redhat.sh

http://dl.iteye.com/upload/attachment/370696/16763beb-bfa4-3dfd-9314-7581b23b16d8.jpg
 将这里的default修改为all
如果您不想修改启动脚本的话,也可以通过设置环境变量来指定jboss配置
export JBOSS_CONF=all
 
 
JBoss启动时需要指定监听IP,如果不指定默认是0.0.0.0,即所有IP。这样会导致jboss异常。至于为什么会这样本人还没有深入研究。
export JBOSS_HOST=node1.localdomain
 
 2.启动每个jboss节点
# /usr/local/jboss-4.0.5.GA/bin/jboss_init_redhat.sh start
 
/usr/local/jboss-4.0.5.GA/bin/run.sh -c all -b node1.localdomain
 
注意:jboss有可能会报如下异常
java.net.SocketException: bad argument for IP_MULTICAST_IF: address not bound to any interface
        at java.net.PlainDatagramSocketImpl.socketSetOption(Native Method)
        at java.net.PlainDatagramSocketImpl.setOption(PlainDatagramSocketImpl.java:295) 
 
 
解决办法:关闭jgroups对ipv6的支持
jvm参数中增加 -Djava.net.preferIPv4Stack=true
 
3.停止jboss节点
# /usr/local/jboss-4.0.5.GA/bin/jboss_init_redhat.sh stop
直接执行会抛出 "Could not obtain connection to any of these urls: localhost:1099" 解决办法修改jboss_init_redhat.sh
 
在脚本中找到下面一行:
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
修改为:
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown -s $JBOSS_HOST"}
 
4.启动
成功启动两个节点后,为得到如下日志:
node2.localdomain
http://dl.iteye.com/upload/attachment/374197/b362a8d6-ef75-3849-a51a-4631b20eb734.jpg
 
node1.localdomain

http://dl.iteye.com/upload/attachment/374203/0edfec10-904e-3c67-8624-b7c9b345c8c3.jpg
 
5.发布应用
将应用copy到集群中任意节点的/usr/local/jboss-4.0.5.GA/server/all/farm 目录下,该应用会自动同步到集群中各个节点。
 
 node1.localdomain log
http://dl.iteye.com/upload/attachment/374211/5b869d83-9ff1-3647-b681-b7dadf6101db.jpg
 
node2.localdomain log

http://dl.iteye.com/upload/attachment/374213/c4bad852-70a8-36f5-8a31-6a7b0a70189d.jpg
 
页: [1]
查看完整版本: JBoss4.0.5集群实现---创建集群实例篇