Jboss集群的安装配置


这篇文章主要介绍“Jboss集群的安装配置”,在日常操作中,相信很多人在Jboss集群的安装配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Jboss集群的安装配置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!两台PC服务器:
信息项说明安装介质 :

1)将jdk介质上传到目标服务器上(XXX.XXX.1.59),并赋上执行权限[root@XXXHT3 jboss]# chmod +x jdk-6u29-linux-i586-rpm.bin
-rwxr–r– 1 root root 80671698 Apr 25 03:13 jdk-6u29-linux-i586-rpm.bin12[root@XXXHT3
jboss]# chmod +x jdk-6u29-linux-i586-rpm.binrwxrr
1
root
root80671698
Apr
25
03:13
jdk6u29linuxi586rpm.bin2)输入以下命令开始安装[root@XXXHT3 jboss]# ./jdk-6u29-linux-i586-rpm.bin
[root@XXXHT3 jboss]# rpm -ivh jdk-6u29-linux-i586.rpm12[root@XXXHT3
jboss]# ./jdk-6u29-linux-i586-rpm.bin[root@XXXHT3
jboss]# rpm -ivh jdk-6u29-linux-i586.rpm3)确认jdk已经安装[root@XXXHT3 jboss]# cd /usr/java/
default/ jdk1.6.0_29/ latest/12[root@XXXHT3
jboss]# cd /usr/java/default/
jdk1.6.0_29/
latest/1)找到用户家目录下的.bash_profile文件,在文件最后加入下面内容JAVA_HOME=/usr/java/jdk1.6.0_29
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH1234JAVA_HOME=/usr/java/jdk1.6.0_29
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export
PATH
JAVA_HOME
CLASSPATH保存退出
注销系统重新登录或执行以下命令
[root@XXXHT3 ~]# . .bash_profile1[root@XXXHT3
~]# . .bash_profile2)安装成功后输入java –version 查看版本是否正确,显示以下信息则正确。
[root@XXXHT3 ~]# java -version
java version “1.6.0_29”
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Server VM (build 20.4-b02, mixed mode)1234[root@XXXHT3
~]# java -versionjava
version
“1.6.0_29”Java(TM)
SE
Runtime
Environment
(build
1.6.0_29b11)Java
HotSpot(TM)
Server
VM
(build
20.4b02,
mixed
mode)解压jboss介质文件
[root@XXXHT3 jboss]# unzip jboss-5.1.0.GA-jdk6.zip
Archive: jboss-5.1.0.GA-jdk6.zip12[root@XXXHT3
jboss]# unzip jboss-5.1.0.GA-jdk6.zip
Archive:jboss5.1.0.GAjdk6.zip3. 配置JBoss 环境变量
找到用户家目录下的.bash_profile文件,在文件最后加入下面内容
JBOSS_HOME=/data/jboss/jboss-5.1.0.GA
PATH=$JBOSS_HOME/bin:$PATH
export JBOSS_HOME PATH123JBOSS_HOME=/data/jboss/jboss5.1.0.GA
PATH=$JBOSS_HOME/bin:$PATH
export
JBOSS_HOME
PATH保存退出
注销系统重新登录或执行以下命令
[root@XXXHT3 ~]# . .bash_profile1[root@XXXHT3
~]# . .bash_profile1)下载apache(httpd-2.2.17)
2)解压
[root@XXXHT3 jboss]# tar -xvf httpd-2.2.17.tar.gz1[root@XXXHT3
jboss]# tar -xvf httpd-2.2.17.tar.gz3)编译
进入解压后的apache目录,执行下面命令
[root@XXXHT3 httpd-2.2.17]# ./configure1[root@XXXHT3
httpd2.2.17]# ./configure4)然后依次输入:
make clean 回车
make 回车
make install 回车123make
clean
回车make
回车make
install
回车5)确认apache安装目录
[root@XXXHT3 httpd-2.2.17]# cd /usr/local/apache2/
[root@XXXHT3 apache2]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules123[root@XXXHT3
httpd2.2.17]# cd /usr/local/apache2/[root@XXXHT3
apache2]# lsbinbuildcgibinconferrorhtdocsiconsincludeliblogsmanmanualmodules6)修改配置
打开 /usr/local/apache2/conf/httpd.conf文件
将Listen 80 改成Listen 7070
将User daemon和Group daemon 改为 User apache和Group apache删除ServerName前的# 将该行改为 ServerName 127.0.0.1:8888然后添加用户和用户组在终端输入:groupadd apache
useradd apache –g apache12groupadd
apacheuseradd
apache
g
apache1)下载mod_jk安装包
mod_jk下载地址
http://tomcat.apache.org/connectors-doc/2)解压
[root@XXXHT3 jboss]# tar -xvf tomcat-connectors-1.2.40-src.tar.gz1[root@XXXHT3
jboss]# tar -xvf tomcat-connectors-1.2.40-src.tar.gz3)编译安装
[root@XXXHT3 jboss]# cd tomcat-connectors-1.2.40-src
[root@XXXHT3 tomcat-connectors-1.2.40-src]# cd native
[root@XXXHT3 native]# ./configure –with-apxs=/usr/local/apache2/bin/apxs –with-java-home=/usr/java/jdk1.6.0_29 –with-java-platform=2 –enable-jni
[root@XXXHT3 native]# make
[root@XXXHT3 native]# make install12345[root@XXXHT3
jboss]# cd tomcat-connectors-1.2.40-src[root@XXXHT3
tomcatconnectors1.2.40src]# cd native[root@XXXHT3
native]# ./configure –with-apxs=/usr/local/apache2/bin/apxs–with-java-home=/usr/java/jdk1.6.0_29–with-java-platform=2–enable-jni[root@XXXHT3
native]# make[root@XXXHT3
native]# make install4)拷贝mod_jk.so包到
[root@XXXHT3 native]# cd apache-2.0/
[root@XXXHT3 apache-2.0]# cp ./mod_jk.so /usr/local/apache2/modules/
cd /usr/local/apache/modules/
chmod 755 mod_jk.so1234[root@XXXHT3
native]# cd apache-2.0/[root@XXXHT3
apache2.0]# cp ./mod_jk.so /usr/local/apache2/modules/
cd
/usr/local/apache/modules/chmod
755
mod_jk.so5)在/usr/local/apache2/conf/httpd.conf的末尾增加:
Include conf/mod_jk.conf1Include
conf/mod_jk.conf6)建立文件/usr/local/apache2/conf/uriworkermap.properties并输入:
[root@XXXHT3 conf]# vi uriworkermap.properties
/jmx-console=loadbalancer
/jmx-console/*=loadbalancer
/web-console=loadbalancer
/web-console/*=loadbalancer12345[root@XXXHT3
conf]# vi uriworkermap.properties/jmxconsole=loadbalancer/jmxconsole/*=loadbalancer/webconsole=loadbalancer/webconsole/*=loadbalancer7)该目录下建立文件mod_jk.conf 并输入以下内容:
# Load mod_jk module. Specify the filename
# of the mod_jk lib you’ve downloaded and
# installed in the previous section
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat “[%a %b %d %H:%M:%S %Y] ”
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat “%w %V %T”
JkMount /* loadbalancer1234567891011121314151617# Load mod_jk module. Specify the filename# of the mod_jk lib you’ve downloaded and# installed in the previous sectionLoadModule
jk_module
modules/mod_jk.so# Where to find workers.propertiesJkWorkersFile
conf/workers.properties# Where to put jk logsJkLogFile
logs/mod_jk.log# Set the jk log level [debug/error/info]JkLogLevel
info# Select the log formatJkLogStampFormat
“[%a %b %d %H:%M:%S %Y] “# JkOptions indicate to send SSL KEY SIZE,JkOptions
+ForwardKeySize
+ForwardURICompat
ForwardDirectories# JkRequestLogFormat set the request formatJkRequestLogFormat
“%w %V %T”JkMount
/*
loadbalancer8)该目录下建立文件workers.properties 并输入以下内容:
worker.list=loadbalancer,node1,node2
# Define the first node…
worker.node1.port=8009
worker.node1.host=XXX.XXX.1.59
worker.node1.type=ajp13
worker.node1.lbfactor=1
worker.node1.local_worker=1
worker.node1.cachesize=10
worker.node1.cache_timeout=600
worker.node1.reply_timeout=100
worker.node1.socket_timeout=300
# Define the second node…
worker.node2.port=8009
worker.node2.host=XXX.XXX.1.63
worker.node2.type=ajp13
worker.node2.lbfactor=1
worker.node2.local_worker=1
worker.node2.cachesize=10
worker.node2.cache_timeout=600
worker.node2.reply_timeout=100
worker.node2.socket_timeout=300
# Now we define the load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=node1,node2
worker.loadbalancer.sticky_session=012345678910111213141516171819202122232425worker.list=loadbalancer,node1,node2# Define the first node…worker.node1.port=8009worker.node1.host=XXX.XXX.1.59worker.node1.type=ajp13worker.node1.lbfactor=1worker.node1.local_worker=1worker.node1.cachesize=10worker.node1.cache_timeout=600worker.node1.reply_timeout=100worker.node1.socket_timeout=300# Define the second node…worker.node2.port=8009worker.node2.host=XXX.XXX.1.63worker.node2.type=ajp13worker.node2.lbfactor=1worker.node2.local_worker=1worker.node2.cachesize=10worker.node2.cache_timeout=600worker.node2.reply_timeout=100worker.node2.socket_timeout=300# Now we define the load-balancing behaviourworker.loadbalancer.type=lbworker.loadbalancer.balanced_workers=node1,node2worker.loadbalancer.sticky_session=说明:
worker.node1.host、 worker.node2.host要改成jboss集群各机器的实际IP.
如果有更多的节点,顺序定义更多的 node段,并worker.loadbalancer.balanced_workers 后全部列出.
lbfactor是负载分配权重,值越大分配的负载越多.
worker.loadbalancer.sticky_session它是指session是否是黏着性session,如果是0则代表是非黏着性session,1代表粘连。
1)修改server.xml使它支持所有网络访问
[root@XXXHT3 deploy]# cd /data/jboss/jboss-5.1.0.GA/server/all/deploy/jbossweb.sar
[root@XXXHT3 deploy]# vi server.xml12[root@XXXHT3
deploy]# cd /data/jboss/jboss-5.1.0.GA/server/all/deploy/jbossweb.sar[root@XXXHT3
deploy]# vi server.xml修改

1

Connector
port=“8080”
address=“${jboss.bind.address}”

1

Connector
port=“8080”
address=“0.0.0.0”
>

修改

1

Connector
port=“8009”
address=“${jboss.bind.address}”
protocol=“AJP/1.3”

1

Connector
port=“8009”
address=“0.0.0.0”
protocol=“AJP/1.3”

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

1

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

1

2

[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行为

1

2

3

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行为

1

2

3

4

TCPPING
timeout=“3000”


initial_hosts=“${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}”


port_range=“1”


num_initial_members=“3”/>

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

1

2

3

4

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]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF
[root@XXXHT3 deploy]# vi war-deployers-jboss-beans.xml

1

2

[root@XXXHT3
deploy]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF

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

找到:

false

//需要去掉旁边的注释

改为:

true

5)修改ssaging-service.xml文件

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

1

2

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

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

修改20行

${jboss.messaging.ServerPeerID:1}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:1}/attribute>

此时只要是整数值就可以

另一个机器配置

${jboss.messaging.ServerPeerID:2}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:2}/attribute>

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

应用项目

war包里的web.xml文件

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

1

distributable/>

将其放到最顶层,如下



hello.jsp

1

2

3

4

5

6

7

8

9

10

11

xml
version=“1.0”
encoding=“UTF-8”?>

webapp
version=“2.5”

xmlns=“http://java.sun.com/xml/ns/javaee”

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

xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
>

distributable/>

welcomefilelist>

welcomefile>hello.jsp/welcomefile>

/welcomefilelist>

/webapp>

war包里的jboss-web.xml文件

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

SET_AND_NON_PRIMITIVE_GET

SESSION

True

1

2

3

4

5

6

7

8

9

10

11

12

jbossweb>

replicationconfig>

replicationtrigger>SET_AND_NON_PRIMITIVE_GET


/replicationtrigger>

replicationgranularity>

SESSION

/replicationgranularity>

replicationfieldbatchmode>

True

/replicationfieldbatchmode>

/replicationconfig>

/jbossweb>

启动JBoss集群

启动负载均衡器apache

在/usr/local/apache2/bin目录下执行./httpd –k start (终止命令: ./httpd –k stop)

在/usr/local/apache2/logs/mod_jk.log 中,看到 apache初始化mod_jk的日志:

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

1

2

3

4

5

6

7

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

mod_jk/1.2.23
initialized

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

mod_jk/1.2.23
initialized

后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。

用 netstat检查 7070监听端口存在,apache启动成功. (netstat -an | grep 7070)

启动JBoss节点

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

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

1

run.sh
c
all
b
XXX.XXX.1.59

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

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

1

run.sh
c
all
b
XXX.XXX.1.63

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

用 netstat检查 8080端口监听存在.

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

Jboss启动成功.

负载均衡及容灾测试

通过Hello World小应用,完成了以下集群负载及容灾测试

设置非session粘连状态

测试场景

测试结果

是否通过

59、63两个JBoss节点状态正常 请求会轮询的平均转发给两个节点 通过
59节点宕掉,63节点正常 请求转发到63节点,能正常返回 通过
63节点宕掉,59节点正常 请求转发到59节点,能正常返回 通过
宕掉的其中一个节点重新启动 请求会轮询的平均转发给两个节点 通过

设置session粘连状态

测试场景

测试结果

是否通过

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

JBoss与WebLogic产品比较

JBoss

WebLogic

软件费用 开源软件,免费 商业软件,收费
版本升级 版本跨度大,需要修改源代码 升级方便,基本不需要修改
集群安装部署 比较复杂 简单
集群扩展 比较简单 简单
管理 每个节点进行管理 所有节点同一个控制台统一管理
热部署 支持,但要每个节点进行部署 支持而且更稳定,一次性部署整个集群
适用对象 中小型应用项目 企业级开发大项目
稳定性 一般 稳定性更高
技术支持 提供专业技术支持

到此,关于“Jboss集群的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

1Connector
port=“8080”
address=“${jboss.bind.address}”

1Connector
port=“8080”
address=“0.0.0.0”
>
修改

1

Connector
port=“8009”
address=“${jboss.bind.address}”
protocol=“AJP/1.3”

1

Connector
port=“8009”
address=“0.0.0.0”
protocol=“AJP/1.3”

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

1

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

1

2

[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行为

1

2

3

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行为

1

2

3

4

TCPPING
timeout=“3000”


initial_hosts=“${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}”


port_range=“1”


num_initial_members=“3”/>

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

1

2

3

4

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]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF
[root@XXXHT3 deploy]# vi war-deployers-jboss-beans.xml

1

2

[root@XXXHT3
deploy]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF

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

找到:

false

//需要去掉旁边的注释

改为:

true

5)修改ssaging-service.xml文件

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

1

2

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

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

修改20行

${jboss.messaging.ServerPeerID:1}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:1}/attribute>

此时只要是整数值就可以

另一个机器配置

${jboss.messaging.ServerPeerID:2}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:2}/attribute>

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

应用项目

war包里的web.xml文件

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

1

distributable/>

将其放到最顶层,如下



hello.jsp

1

2

3

4

5

6

7

8

9

10

11

xml
version=“1.0”
encoding=“UTF-8”?>

webapp
version=“2.5”

xmlns=“http://java.sun.com/xml/ns/javaee”

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

xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
>

distributable/>

welcomefilelist>

welcomefile>hello.jsp/welcomefile>

/welcomefilelist>

/webapp>

war包里的jboss-web.xml文件

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

SET_AND_NON_PRIMITIVE_GET

SESSION

True

1

2

3

4

5

6

7

8

9

10

11

12

jbossweb>

replicationconfig>

replicationtrigger>SET_AND_NON_PRIMITIVE_GET


/replicationtrigger>

replicationgranularity>

SESSION

/replicationgranularity>

replicationfieldbatchmode>

True

/replicationfieldbatchmode>

/replicationconfig>

/jbossweb>

启动JBoss集群

启动负载均衡器apache

在/usr/local/apache2/bin目录下执行./httpd –k start (终止命令: ./httpd –k stop)

在/usr/local/apache2/logs/mod_jk.log 中,看到 apache初始化mod_jk的日志:

[Wed Aug 01 10:36:11 2007][6636:63168] [info] init_jk::mod_jk.c (2743):
mod_jk/1.2.23 initialized
[Wed Aug 01 10:开发云主机域名36:11 2007][6637:63168] [info] init_jk::mod_jk.c (2743):
mod_jk/1.2.23 initialized

1

2

3

4

5

6

7

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

mod_jk/1.2.23
initialized

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

mod_jk/1.2.23
initialized

后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。

用 netstat检查 7070监听端口存在,apache启动成功. (netstat -an | grep 7070)

启动JBoss节点

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

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

1

run.sh
c
all
b
XXX.XXX.1.59

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

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

1

run.sh
c
all
b
XXX.XXX.1.63

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

用 netstat检查 8080端口监听存在.

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

Jboss启动成功.

负载均衡及容灾测试

通过Hello World小应用,完成了以下集群负载及容灾测试:

设置非session粘连状态

测试场景

测试结果

是否通过

59、63两个JBoss节点状态正常 请求会轮询的平均转发给两个节点 通过
59节点宕掉,63节点正常 请求转发到63节点,能正常返回 通过
63节点宕掉,59节点正常 请求转发到59节点,能正常返回 通过
宕掉的其中一个节点重新启动 请求会轮询的平均转发给两个节点 通过

设置session粘连状态

测试场景

测试结果

是否通过

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

JBoss与WebLogic产品比较

JBoss

WebLogic

软件费用 开源软件,免费 商业软件,收费
版本升级 版本跨度大,需要修改源代码 升级方便,基本不需要修改
集群安装部署 比较复杂 简单
集群扩展 比较简单 简单
管理 每个节点进行管理 所有节点同一个控制台统一管理
热部署 支持,但要每个节点进行部署 支持而且更稳定,一次性部署整个集群
适用对象 中小型应用项目 企业级开发大项目
稳定性 一般 稳定性更高
技术支持 提供专业技术支持

到此,关于“Jboss集群的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

1Connector
port=“8009”
address=“${jboss.bind.address}”
protocol=“AJP/1.3”

1

Connector
port=“8009”
address=“0.0.0.0”
protocol=“AJP/1.3”

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

1

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

1

2

[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行为

1

2

3

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行为

1

2

3

4

TCPPING
timeout=“3000”


initial_hosts=“${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}”


port_range=“1”


num_initial_members=“3”/>

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

1

2

3

4

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]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF
[root@XXXHT3 deploy]# vi war-deployers-jboss-beans.xml

1

2

[root@XXXHT3
deploy]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF

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

找到:

false

//需要去掉旁边的注释

改为:

true

5)修改ssaging-service.xml文件

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

1

2

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

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

修改20行

${jboss.messaging.ServerPeerID:1}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:1}/attribute>

此时只要是整数值就可以

另一个机器配置

${jboss.messaging.ServerPeerID:2}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:2}/attribute>

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

应用项目

war包里的web.xml文件

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

1

distributable/>

将其放到最顶层,如下



hello.jsp

1

2

3

4

5

6

7

8

9

10

11

xml
version=“1.0”
encoding=“UTF-8”?>

webapp
version=“2.5”

xmlns=“http://java.sun.com/xml/ns/javaee”

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

xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
>

distributable/>

welcomefilelist>

welcomefile>hello.jsp/welcomefile>

/welcomefilelist>

/webapp>

war包里的jboss-web.xml文件

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

SET_AND_NON_PRIMITIVE_GET

SESSION

True

1

2

3

4

5

6

7

8

9

10

11

12

jbossweb>

replicationconfig>

replicationtrigger>SET_AND_NON_PRIMITIVE_GET


/replicationtrigger>

replicationgranularity>

SESSION

/replicationgranularity>

replicationfieldbatchmode>

True

/replicationfieldbatchmode>

/replicationconfig>

/jbossweb>

启动JBoss集群

启动负载均衡器apache

在/usr/local/apache2/bin目录下执行./httpd –k start (终止命令: ./httpd –k stop)

在/usr/local/apache2/logs/mod_jk.log 中,看到 apache初始化mod_jk的日志:

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

1

2

3

4

5

6

7

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

mod_jk/1.2.23
initialized

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

mod_jk/1.2.23
initialized

后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。

用 netstat检查 7070监听端口存在,apache启动成功. (netstat -an | grep 7070)

启动JBoss节点

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

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

1

run.sh
c
all
b
XXX.XXX.1.59

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

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

1

run.sh
c
all
b
XXX.XXX.1.63

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

用 netstat检查 8080端口监听存在.

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

Jboss启动成功.

负载均衡及容灾测试

通过Hello World小应用,完成了以下集群负载及容灾测试:

设置非session粘连状态

测试场景

测试结果

是否通过

59、63两个JBoss节点状态正常 请求会轮询的平均转发给两个节点 通过
59节点宕掉,63节点正常 请求转发到63节点,能正常返回 通过
63节点宕掉,59节点正常 请求转发到59节点,能正常返回 通过
宕掉的其中一个节点重新启动 请求会轮询的平均转发给两个节点 通过

设置session粘连状态

测试场景

测试结果

是否通过

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

JBoss与WebLogic产品比较

JBoss

WebLogic

软件费用 开源软件,免费 商业软件,收费
版本升级 版本跨度大,需要修改源代码 升级方便,基本不需要修改
集群安装部署 比较复杂 简单
集群扩展 比较简单 简单
管理 每个节点进行管理 所有节点同一个控制台统一管理
热部署 支持,但要每个节点进行部署 支持而且更稳定,一次性部署整个集群
适用对象 中小型应用项目 企业级开发大项目
稳定性 一般 稳定性更高
技术支持 提供专业技术支持

到此,关于“Jboss集群的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

1Connector
port=“8009”
address=“0.0.0.0”
protocol=“AJP/1.3”
2)修改server.xml使它支持所有网络访问,使得JBoss知道自己为Node1结点1Engine
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.xml12[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行为

1

2

3

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行为

1

2

3

4

TCPPING
timeout=“3000”


initial_hosts=“${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}”


port_range=“1”


num_initial_members=“3”/>

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

1

2

3

4

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]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF
[root@XXXHT3 deploy]# vi war-deployers-jboss-beans.xml

1

2

[root@XXXHT3
deploy]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF

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

找到:

false

//需要去掉旁边的注释

改为:

true

5)修改ssaging-service.xml文件

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

1

2

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

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

修改20行

${jboss.messaging.ServerPeerID:1}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:1}/attribute>

此时只要是整数值就可以

另一个机器配置

${jboss.messaging.ServerPeerID:2}

1

attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:2}/attribute>

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

应用项目

war包里的web.xml文件

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

1

distributable/>

将其放到最顶层,如下



hello.jsp

1

2

3

4

5

6

7

8

9

10

11

xml
version=“1.0”
encoding=“UTF-8”?>

webapp
version=“2.5”

xmlns=“http://java.sun.com/xml/ns/javaee”

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

xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
>

distributable/>

welcomefilelist>

welcomefile>hello.jsp/welcomefile>

/welcomefilelist>

/webapp>

war包里的jboss-web.xml文件

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

SET_AND_NON_PRIMITIVE_GET

SESSION

True

1

2

3

4

5

6

7

8

9

10

11

12

jbossweb>

replicationconfig>

replicationtrigger>SET_AND_NON_PRIMITIVE_GET


/replicationtrigger>

replicationgranularity>

SESSION

/replicationgranularity>

replicationfieldbatchmode>

True

/replicationfieldbatchmode>

/replicationconfig>

/jbossweb>

启动JBoss集群

启动负载均衡器apache

在/usr/local/apache2/bin目录下执行./httpd –k start (终止命令: ./httpd –k stop)

在/usr/local/apache2/logs/mod_jk.log 中,看到 apache初始化mod_jk的日志:

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

1

2

3

4

5

6

7

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

mod_jk/1.2.23
initialized

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

mod_jk/1.2.23
initialized

后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。

用 netstat检查 7070监听端口存在,apache启动成功. (netstat -an | grep 7070)

启动JBoss节点

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

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

1

run.sh
c
all
b
XXX.XXX.1.59

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

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

1

run.sh
c
all
b
XXX.XXX.1.63

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

用 netstat检查 8080端口监听存在.

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

Jboss启动成功.

负载均衡及容灾测试

通过Hello World小应用,完成了以下集群负载及容灾测试:

设置非session粘连状态

测试场景

测试结果

是否通过

59、63两个JBoss节点状态正常 请求会轮询的平均转发给两个节点 通过
59节点宕掉,63节点正常 请求转发到63节点,能正常返回 通过
63节点宕掉,59节点正常 请求转发到59节点,能正常返回 通过
宕掉的其中一个节点重新启动 请求会轮询的平均转发给两个节点 通过

设置session粘连状态

测试场景

测试结果

是否通过

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

JBoss与WebLogic产品比较

JBoss

WebLogic

软件费用 开源软件,免费 商业软件,收费
版本升级 版本跨度大,需要修改源代码 升级方便,基本不需要修改
集群安装部署 比较复杂 简单
集群扩展 比较简单 简单
管理 每个节点进行管理 所有节点同一个控制台统一管理
热部署 支持,但要每个节点进行部署 支持而且更稳定,一次性部署整个集群
适用对象 中小型应用项目 企业级开发大项目
稳定性 一般 稳定性更高
技术支持 提供专业技术支持

到此,关于“Jboss集群的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

123TCPPING
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行为
1234TCPPING
timeout=“3000”

initial_hosts=“${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}”
port_range=“1”
num_initial_members=“3”/>在另一台机器Node节点上,此文件修改如下
1234TCPPING
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]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF
[root@XXXHT3 deploy]# vi war-deployers-jboss-beans.xml12[root@XXXHT3
deploy]# cd / data/jboss/jboss-5.1.0.GA/server/all/deployers/jbossweb.deployer/META-INF[root@XXXHT3
deploy]# vi war-deployers-jboss-beans.xml找到:false//需要去掉旁边的注释
改为:true5)修改ssaging-service.xml文件[root@XXXHT3 deploy]# cd /data/jboss/jboss-5.1.0.GA/server/all/deploy/messaging
[root@XXXHT3 deploy]# vi messaging-service.xml12[root@XXXHT3
deploy]# cd /data/jboss/jboss-5.1.0.GA/server/all/deploy/messaging[root@XXXHT3
deploy]# vi messaging-service.xml修改20行${jboss.messaging.ServerPeerID:1}1attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:1}/attribute>
此时只要是整数值就可以
另一个机器配置
${jboss.messaging.ServerPeerID:2}1attribute
name=“ServerPeerID”>${jboss.messaging.ServerPeerID:2}/attribute>
需要注意的就是同一个集群里不同Node的这个ID数值不能一致。
在自己的项目应用的war包中的web.xml加入下面一句话
1distributable/>将其放到最顶层,如下


hello.jsp
1234567891011xml
version=“1.0”
encoding=“UTF-8”?>webapp
version=“2.5”
xmlns=“http://java.sun.com/xml/ns/javaee”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”
>distributable/>welcomefilelist>welcomefile>hello.jsp/welcomefile>/welcomefilelist>/webapp>在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下
SET_AND_NON_PRIMITIVE_GET

SESSION

True
123456789101112jbossweb>replicationconfig>replicationtrigger>SET_AND_NON_PRIMITIVE_GET
/replicationtrigger>replicationgranularity>SESSION/replicationgranularity>replicationfieldbatchmode>True/replicationfieldbatchmode>/replicationconfig>/jbossweb>在/usr/local/apache2/bin目录下执行./httpd –k start (终止命令: ./httpd –k stop)在/usr/local/apache2/logs/mod_jk.log 中,看到 apache初始化mod_jk的日志:[Wed Aug 01 10:36:11 2007][6636:63168] [info] init_jk::mod_jk.c (2743):
mod_jk/1.2.23 initialized
[Wed Aug 01 10:36:11 2007][6637:63168] [info] init_jk::mod_jk.c (2743):
mod_jk/1.2.23 initialized1234567[Wed
Aug
01
10:36:11
2007][6636:63168]
[info]
init_jk::mod_jk.c
(2743):mod_jk/1.2.23
initialized[Wed
Aug
01
10:36:11
2007][6637:63168]
[info]
init_jk::mod_jk.c
(2743):mod_jk/1.2.23
initialized后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。用 netstat检查 7070监听端口存在,apache启动成功. (netstat -an | grep 7070)在${JBOSS_HOME}bin下建立一个run-all.sh文件,(记住:一定要以配置IP的方式启动,Session赋值才有效)内容如下:run.sh -c all -b XXX.XXX.1.591run.sh
c
all
b
XXX.XXX.1.59如果是63 Node机器,内容如下
run.sh -c all -b XXX.XXX.1.631run.sh
c
all
b
XXX.XXX.1.63终止命令:./shutdown.sh -S用 netstat检查 8080端口监听存在.用浏览器访问各节点的 8080端口,能够看到jboss的状态.Jboss启动成功.通过Hello World小应用,完成了以下集群负载及容灾测试:测试场景测试结果是否通过测试场景测试结果是否通过JBossWebLogic到此,关于“Jboss集群的安装配置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: 怎么在MySQL中创建一个用户

本篇文章为大家展示了怎么在MySQL中创建一个用户,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.使用CREATE USER语句创建用户用户:指定创建用户账号,格式为 user_name’@’host_name。这里…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/21 17:06
下一篇 06/21 17:07

相关推荐