这篇文章主要介绍“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.bin–rwxr—r—
1
root
root80671698
Apr
25
03:13
jdk–6u29–linux–i586–rpm.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_29–b11)Java
HotSpot(TM)
Server
VM
(build
20.4–b02,
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:jboss–5.1.0.GA–jdk6.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/jboss–5.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
httpd–2.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
httpd–2.2.17]# cd /usr/local/apache2/[root@XXXHT3
apache2]# lsbinbuildcgi–binconferrorhtdocsiconsincludeliblogsmanmanualmodules6)修改配置
打开 /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
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 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
apache–2.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/jmx–console=loadbalancer/jmx–console/*=loadbalancer/web–console=loadbalancer/web–console/*=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 |
为
1 |
Connector |
修改
1 |
Connector |
为
1 |
Connector |
2)修改server.xml使它支持所有网络访问,使得JBoss知道自己为Node1结点
1 |
Engine |
注意,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 [root@XXXHT3 |
修改292行为
1 2 3 |
TCPPING
|
其中59是本机Node的ip地址,63是另一个机器Node的ip地址。端口7810是JBoss内定的。
修改374行为
1 2 3 4 |
TCPPING
|
在另一台机器Node节点上,此文件修改如下
1 2 3 4 |
TCPPING
|
相对于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 [root@XXXHT3 |
找到:
//需要去掉旁边的注释
改为:
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 [root@XXXHT3 |
修改20行
${jboss.messaging.ServerPeerID:1}
1 |
attribute |
此时只要是整数值就可以
另一个机器配置
${jboss.messaging.ServerPeerID:2}
1 |
attribute |
需要注意的就是同一个集群里不同Node的这个ID数值不能一致。
应用项目
war包里的web.xml文件
在自己的项目应用的war包中的web.xml加入下面一句话
1 |
distributable/> |
将其放到最顶层,如下
1 2 3 4 5 6 7 8 9 10 11 |
xml web–app 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
distributable/> welcome–file–list> welcome–file>hello.jsp/welcome–file> /welcome–file–list> /web–app> |
war包里的jboss-web.xml文件
在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下
SESSION
True
1 2 3 4 5 6 7 8 9 10 11 12 |
jboss–web> replication–config> replication–trigger>SET_AND_NON_PRIMITIVE_GET
replication–granularity> SESSION /replication–granularity> replication–field–batch–mode> True /replication–field–batch–mode> /replication–config> /jboss–web> |
启动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 mod_jk/1.2.23 [Wed mod_jk/1.2.23 |
后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。
用 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 |
如果是63 Node机器,内容如下
run.sh -c all -b XXX.XXX.1.63
1 |
run.sh |
终止命令:./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}”为
port=“8080”
address=“0.0.0.0”
>修改
1 |
Connector |
为
1 |
Connector |
2)修改server.xml使它支持所有网络访问,使得JBoss知道自己为Node1结点
1 |
Engine |
注意,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 [root@XXXHT3 |
修改292行为
1 2 3 |
TCPPING
|
其中59是本机Node的ip地址,63是另一个机器Node的ip地址。端口7810是JBoss内定的。
修改374行为
1 2 3 4 |
TCPPING
|
在另一台机器Node节点上,此文件修改如下
1 2 3 4 |
TCPPING
|
相对于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 [root@XXXHT3 |
找到:
//需要去掉旁边的注释
改为:
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 [root@XXXHT3 |
修改20行
${jboss.messaging.ServerPeerID:1}
1 |
attribute |
此时只要是整数值就可以
另一个机器配置
${jboss.messaging.ServerPeerID:2}
1 |
attribute |
需要注意的就是同一个集群里不同Node的这个ID数值不能一致。
应用项目
war包里的web.xml文件
在自己的项目应用的war包中的web.xml加入下面一句话
1 |
distributable/> |
将其放到最顶层,如下
1 2 3 4 5 6 7 8 9 10 11 |
xml web–app 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
distributable/> welcome–file–list> welcome–file>hello.jsp/welcome–file> /welcome–file–list> /web–app> |
war包里的jboss-web.xml文件
在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下
SESSION
True
1 2 3 4 5 6 7 8 9 10 11 12 |
jboss–web> replication–config> replication–trigger>SET_AND_NON_PRIMITIVE_GET
replication–granularity> SESSION /replication–granularity> replication–field–batch–mode> True /replication–field–batch–mode> /replication–config> /jboss–web> |
启动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 mod_jk/1.2.23 [Wed mod_jk/1.2.23 |
后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。
用 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 |
如果是63 Node机器,内容如下
run.sh -c all -b XXX.XXX.1.63
1 |
run.sh |
终止命令:./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 |
2)修改server.xml使它支持所有网络访问,使得JBoss知道自己为Node1结点
1 |
Engine |
注意,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 [root@XXXHT3 |
修改292行为
1 2 3 |
TCPPING
|
其中59是本机Node的ip地址,63是另一个机器Node的ip地址。端口7810是JBoss内定的。
修改374行为
1 2 3 4 |
TCPPING
|
在另一台机器Node节点上,此文件修改如下
1 2 3 4 |
TCPPING
|
相对于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 [root@XXXHT3 |
找到:
//需要去掉旁边的注释
改为:
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 [root@XXXHT3 |
修改20行
${jboss.messaging.ServerPeerID:1}
1 |
attribute |
此时只要是整数值就可以
另一个机器配置
${jboss.messaging.ServerPeerID:2}
1 |
attribute |
需要注意的就是同一个集群里不同Node的这个ID数值不能一致。
应用项目
war包里的web.xml文件
在自己的项目应用的war包中的web.xml加入下面一句话
1 |
distributable/> |
将其放到最顶层,如下
1 2 3 4 5 6 7 8 9 10 11 |
xml web–app 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
distributable/> welcome–file–list> welcome–file>hello.jsp/welcome–file> /welcome–file–list> /web–app> |
war包里的jboss-web.xml文件
在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下
SESSION
True
1 2 3 4 5 6 7 8 9 10 11 12 |
jboss–web> replication–config> replication–trigger>SET_AND_NON_PRIMITIVE_GET
replication–granularity> SESSION /replication–granularity> replication–field–batch–mode> True /replication–field–batch–mode> /replication–config> /jboss–web> |
启动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 mod_jk/1.2.23 [Wed mod_jk/1.2.23 |
后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。
用 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 |
如果是63 Node机器,内容如下
run.sh -c all -b XXX.XXX.1.63
1 |
run.sh |
终止命令:./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结点
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
|
其中59是本机Node的ip地址,63是另一个机器Node的ip地址。端口7810是JBoss内定的。
修改374行为
1 2 3 4 |
TCPPING
|
在另一台机器Node节点上,此文件修改如下
1 2 3 4 |
TCPPING
|
相对于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 [root@XXXHT3 |
找到:
//需要去掉旁边的注释
改为:
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 [root@XXXHT3 |
修改20行
${jboss.messaging.ServerPeerID:1}
1 |
attribute |
此时只要是整数值就可以
另一个机器配置
${jboss.messaging.ServerPeerID:2}
1 |
attribute |
需要注意的就是同一个集群里不同Node的这个ID数值不能一致。
应用项目
war包里的web.xml文件
在自己的项目应用的war包中的web.xml加入下面一句话
1 |
distributable/> |
将其放到最顶层,如下
1 2 3 4 5 6 7 8 9 10 11 |
xml web–app 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
distributable/> welcome–file–list> welcome–file>hello.jsp/welcome–file> /welcome–file–list> /web–app> |
war包里的jboss-web.xml文件
在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下
SESSION
True
1 2 3 4 5 6 7 8 9 10 11 12 |
jboss–web> replication–config> replication–trigger>SET_AND_NON_PRIMITIVE_GET
replication–granularity> SESSION /replication–granularity> replication–field–batch–mode> True /replication–field–batch–mode> /replication–config> /jboss–web> |
启动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 mod_jk/1.2.23 [Wed mod_jk/1.2.23 |
后面如有错误信息,是因为集群中的节点尚未启动,暂时忽略。
用 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 |
如果是63 Node机器,内容如下
run.sh -c all -b XXX.XXX.1.63
1 |
run.sh |
终止命令:./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行为
timeout=“3000”
initial_hosts=“${XXX.XXX.1.59[7810], XXX.XXX.1. 63[7810]}”
port_range=“1”
num_initial_members=“3”/>在另一台机器Node节点上,此文件修改如下
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找到:
改为:
[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加入下面一句话
version=“1.0”
encoding=“UTF-8”?>web–app
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/>welcome–file–list>welcome–file>hello.jsp/welcome–file>/welcome–file–list>/web–app>在web.xml同一级文件夹下,加入jboss-web.xml文件,内容如下
SESSION
True
/replication–trigger>replication–granularity>SESSION/replication–granularity>replication–field–batch–mode>True/replication–field–batch–mode>/replication–config>/jboss–web>在/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中创建一个用户,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.使用CREATE USER语句创建用户用户:指定创建用户账号,格式为 user_name’@’host_name。这里…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。