开源中文网

您的位置: 首页 > jboss > 正文

Jboss集群安装配置

来源: Oracle一体机用户组  作者: 孙文华

准备工作:
 

 

信息项 说明
ip地址 XXX.XXX.1.59 | XXX.XXX.1.63
系统硬件平台

PC Server

内存

6g

CPU Intel(R) Xeon(TM) CPU 3.00GHz *6
操作系统 CentOS release 5.5 (Final)

安装介质 :


安装并配置JDK


下载JDK(版本为1.6)

安装

1)将jdk介质上传到目标服务器上(XXX.XXX.1.59),并赋上执行权限

 

-rwxr--r-- 1 root root  80671698 Apr 25 03:13 jdk-6u29-linux-i586-rpm.bin

2)输入以下命令开始安装

 

[root@XXXHT3 jboss]# rpm -ivh jdk-6u29-linux-i586.rpm

3)确认jdk已经安装

 

default/     jdk1.6.0_29/ latest/

设置环境变量

1)找到用户家目录下的.bash_profile文件,在文件最后加入下面内容

JAVA_HOME=/usr/java/jdk1.6.0_29

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

 

 

 

 

 

[root@XXXHT3 ~]# java -version

Java(TM) SE Runtime Environment (build 1.6.0_29-b11)


安装并配置JBoss环境变量


下载JBoss(JBoss5的jdk6版本安装包)

安装JBoss
 

 

[root@XXXHT3 jboss]# unzip jboss-5.1.0.GA-jdk6.zip

 

 

 

JBOSS_HOME=/data/jboss/jboss-5.1.0.GA  

export JBOSS_HOME PATH

保存退出

注销系统重新登录或执行以下命令

[root@XXXHT3 ~]# . .bash_profile

Jboss集群负载均衡器配置



安装apache

 

 

 

 

 

 

 

make clean 回车

make install 回车

5)确认apache安装目录

 

[root@XXXHT3 apache2]# ls

 

 

 

 

将User daemon和Group daemon 改为 User apache和Group apache

删除ServerName前的#将该行改为 ServerName 127.0.0.1:8888

然后添加用户和用户组

在终端输入:

 

useradd apache –g apache



apache mod_jk 的配置

1)下载mod_jk安装包

mod_jk下载地址

http://tomcat.apache.org/connectors-doc/

2)解压

[root@XXXHT3 jboss]# tar -xvf tomcat-connectors-1.2.40-src.tar.gz

3)编译安装

 

[root@XXXHT3 tomcat-connectors-1.2.40-src]# cd native

[root@XXXHT3 native]# make

 

 

[root@XXXHT3 native]# cd apache-2.0/

cd /usr/local/apache/modules/

 

 

 

 

[root@XXXHT3 conf]# vi uriworkermap.properties

/jmx-console/*=loadbalancer

/web-console/*=loadbalancer

7)该目录下建立文件mod_jk.conf 并输入以下内容

 

# of the mod_jk lib you’ve downloaded and

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkRequestLogFormat "%w %V %T"

 

 

worker.list=loadbalancer,node1,node2

worker.node1.port=8009

worker.node1.type=ajp13

worker.node1.local_worker=1

worker.node1.cache_timeout=600

worker.node1.socket_timeout=300

worker.node2.port=8009

worker.node2.type=ajp13

worker.node2.local_worker=1

worker.node2.cache_timeout=600

worker.node2.socket_timeout=300

worker.loadbalancer.type=lb

worker.loadbalancer.sticky_session=0

说明:

worker.node1.host、 worker.node2.host要改成jboss集群各机器的实际IP。

如果有更多的节点,顺序定义更多的 node段,并worker.loadbalancer.balanced_workers后全部列出。

lbfactor是负载分配权重,值越大分配的负载越多。

worker.loadbalancer.sticky_session它是指session是否是黏着性session,如果是0则代表是非黏着性session,1代表粘连。

 

 

[root@XXXHT3 deploy]# cd /data/jboss/jboss-5.1.0.GA/server/all/deploy/jbossweb.sar

JBoss 集群节点配置


1)修改server.xml使它支持所有网络访问

[root@XXXHT3 deploy]# cd /data/jboss/jboss-5.1.0.GA/server/all/deploy/jbossweb.sar
[root@XXXHT3 deploy]# vi server.xml

修改

<Connector port="8080" address="${jboss.bind.address}"



<Connector port="8080" address="0.0.0.0" >

修改

<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"



<Connector port="8009" address="0.0.0.0" protocol="AJP/1.3"

2)修改server.xml使它支持所有网络访问,使得JBoss知道自己为Node1结点

<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1" >

注意,jvmRoute是节点号,要与在 apache的 workers.properties中的定义相对应。

3)增加节点配置

[root@XXXHT3 deploy]# cd /data/ jboss/jboss-5.1.0.GA /server/all/deploy/cluster/jgroups-channelfactory.sar/META-INF
[root@XXXHT3 deploy]# vi jgroups-channelfactory-stacks.xml

修改292行为

            <TCPPING timeout="3000"
                     initial_hosts="${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}"
                     port_range="1"

其中59是本机Node的ip地址,63是另一个机器Node的ip地址。端口7810是JBoss内定的。

修改374行为

            <TCPPING timeout="3000"
                     initial_hosts="${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}"
                     port_range="1"
                     num_initial_members="3"/>

在另一台机器Node节点上,此文件修改如下

            <TCPPING timeout="3000"
                     initial_hosts="${XXX.XXX.1.63[7810], XXX.XXX.1.59[7810]}"
                     port_range="1"
                     num_initial_members="3"/>

相对于59机器,63就是ip地址进行了对换。

4)定义集群session共享级别(重要)

修改war-deployers-jboss-beans.xml文件,这个文件比较重要,它定义了集群session的共享级别。

 

[root@XXXHT3 deploy]# vi war-deployers-jboss-beans.xml

找到:

false

//需要去掉旁边的注释

改为:

true


5)修改ssaging-service.xml文件

 

[root@XXXHT3 deploy]# vi messaging-service.xml

修改20行

${jboss.messaging.ServerPeerID:1}

此时只要是整数值就可以

另一个机器配置

${jboss.messaging.ServerPeerID:2}

需要注意的就是同一个集群里不同Node的这个ID数值不能一致。

在自己的项目应用的war包中的web.xml加入下面一句话

将其放到最顶层,如下

 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

  

  


war包里的jboss-web.xml文件

在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下

 

    

SESSION

 

 

 

 

 

[Wed Aug 01 10:36:11 2007][6636:63168] [info] init_jk::mod_jk.c (2743):

[Wed Aug 01 10:36:11 2007][6637:63168] [info] init_jk::mod_jk.c (2743):

 

 

 
启动JBoss节点

在${JBOSS_HOME}\bin下建立一个run-all.sh文件,(记住:一定要以配置IP的方式启动,Session赋值才有效)内容如下:

run.sh -c all -b XXX.XXX.1.59

如果是63 Node机器,内容如下

run.sh -c all -b XXX.XXX.1.63

终止命令:./shutdown.sh -S

用 netstat检查 8080端口监听存在

用浏览器访问各节点的 8080端口,能够看到jboss的状态

 
设置非session粘连状态

 

 

测试场景 测试结果 是否通过
59、63两个JBoss节点状态正常 请求只转发给1个节点 通过
59节点宕掉,63节点正常 请求转发到63节点,能正常返回 通过
63节点宕掉,59节点正常 请求转发到59节点,能正常返回 通过
宕掉的其中一个节点重新启动 请求只转发给原来正常的节点 通过

JBoss与WebLogic产品比较

 

原创文章,版权归本文作者所有,如需转载请注明出处

Tags:集群
相关文章列表:
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明