六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

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

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-1-16 02:17:26 | 显示全部楼层 |阅读模式
按照 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启动脚本


 
jboss安装时自带all、default、minimal三种配置,all支持集群,所以需要修改jboss启动脚本将配置变为all。
[root@node1 /]# vim /usr/local/jboss-4.0.5.GA/bin/jboss_init_redhat.sh


 将这里的default修改为all
如果您不想修改启动脚本的话,也可以通过设置环境变量来指定jboss配置
export JBOSS_CONF=all
 
 
JBoss启动时需要指定监听IP,如果不指定默认是0.0.0.0,即所有IP。这样会导致jboss异常。至于为什么会这样本人还没有深入研究。
export JBOSS_HOST=node1.localdomain
 
 2.启动每个jboss节点
[root@node1 /]# /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节点
[root@node1 /]# /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

 
node1.localdomain


 
5.发布应用
将应用copy到集群中任意节点的/usr/local/jboss-4.0.5.GA/server/all/farm 目录下,该应用会自动同步到集群中各个节点。
 
 node1.localdomain log

 
node2.localdomain log


 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表