• ADADADADAD

    Jboss集群的安装配置[ mysql数据库 ]

    mysql数据库 时间:2024-11-28 13:01:48

    作者:文/会员上传

    简介:

    准备工作两台PC服务器:信息项说明ip地址XXX.XXX.1.59|XXX.XXX.1.63系统硬件平台PC Server内存6gCPUIntel(R) Xeon(TM) CPU 3.00GHz *6操作系统CentOS release 5.5 (Final)安

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    准备工作

    两台PC服务器:

    信息项

    说明

    ip地址XXX.XXX.1.59|XXX.XXX.1.63系统硬件平台PC Server内存6gCPUIntel(R) Xeon(TM) CPU 3.00GHz *6操作系统CentOS release 5.5 (Final)

    安装介质 :

    安装并配置JDK
    下载JDK(版本为1.6)
    安装

    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.bin

    1

    2

    [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.bin

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

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

    1

    2

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

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

    3)确认jdk已经安装

    [root@XXXHT3 jboss]# cd /usr/java/default/ jdk1.6.0_29/ latest/

    1

    2

    [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 CLASSPATH

    1

    2

    3

    4

    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 CLASSPATH

    保存退出

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

    [root@XXXHT3 ~]# . .bash_profile

    1

    [root@XXXHT3 ~]# . .bash_profile

    2)安装成功后输入java –version 查看版本是否正确,显示以下信息则正确。

    [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)

    1

    2

    3

    4

    [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)

    安装并配置 JBoss 环境变量
    下载JBoss(JBoss5的jdk6版本安装包)
    安装JBoss

    解压jboss介质文件

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

    1

    2

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

    Archive:jboss-5.1.0.GA-jdk6.zip

    3. 配置JBoss 环境变量

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

    JBOSS_HOME=/data/jboss/jboss-5.1.0.GAPATH=$JBOSS_HOME/bin:$PATH export JBOSS_HOME PATH

    1

    2

    3

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

    PATH=$JBOSS_HOME/bin:$PATH

    export JBOSS_HOME PATH

    保存退出

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

    [root@XXXHT3 ~]# . .bash_profile

    1

    [root@XXXHT3 ~]# . .bash_profile

    Jboss集群负载均衡器配置
    安装apache

    1)下载apache(httpd-2.2.17)

    2)解压

    [root@XXXHT3 jboss]# tar -xvf httpd-2.2.17.tar.gz

    1

    [root@XXXHT3 jboss]# tar -xvf httpd-2.2.17.tar.gz

    3)编译

    进入解压后的apache目录,执行下面命令

    [root@XXXHT3 httpd-2.2.17]# ./configure

    1

    [root@XXXHT3 httpd-2.2.17]# ./configure

    4)然后依次输入:

    make clean 回车make 回车make install 回车

    1

    2

    3

    make clean 回车

    make 回车

    make install 回车

    5)确认apache安装目录

    [root@XXXHT3 httpd-2.2.17]# cd /usr/local/apache2/[root@XXXHT3 apache2]# lsbin build cgi-bin conf error htdocs icons include lib logs man manual modules

    1

    2

    3

    [root@XXXHT3 httpd-2.2.17]# cd /usr/local/apache2/

    [root@XXXHT3 apache2]# ls

    binbuildcgi-binconferrorhtdocsiconsincludeliblogsmanmanualmodules

    6)修改配置

    打开 /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 apacheuseradd apache –g apache

    1

    2

    groupadd apache

    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

    1

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

    3)编译安装

    [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 install

    1

    2

    3

    4

    5

    [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 install

    4)拷贝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.so

    1

    2

    3

    4

    [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.so

    5)在/usr/local/apache2/conf/httpd.conf的末尾增加:

    Include conf/mod_jk.conf

    1

    Include conf/mod_jk.conf

    6)建立文件/usr/local/apache2/conf/uriworkermap.properties并输入:

    [root@XXXHT3 conf]# vi uriworkermap.properties/jmx-console=loadbalancer/jmx-console/*=loadbalancer/web-console=loadbalancer/web-console/*=loadbalancer

    1

    2

    3

    4

    5

    [root@XXXHT3 conf]# vi uriworkermap.properties

    /jmx-console=loadbalancer

    /jmx-console/*=loadbalancer

    /web-console=loadbalancer

    /web-console/*=loadbalancer

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

    # 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 /* loadbalancer

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    # 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 /* loadbalancer

    8)该目录下建立文件workers.properties 并输入以下内容:

    worker.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=0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    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=

    说明:

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

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

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

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

    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

    1

    2

    [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}"

    1

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

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

    1

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

    修改

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

    1

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

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

    1

    <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" >

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

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

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

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

    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节点上,此文件修改如下

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

    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

    找到:

    <property name=”useJK”>false</property>

    //需要去掉旁边的注释<!– –>

    改为:

    <property name=”useJK”>true</property>

    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行

    <attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:1}</attribute>

    1

    <attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:1}</attribute>

    此时只要是整数值就可以

    另一个机器配置

    <attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:2}</attribute>

    1

    <attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:2}</attribute>

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

    应用项目
    war包里的web.xml文件

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

    <distributable/>

    1

    <distributable/>

    将其放到最顶层,如下

    <?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>

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    <?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>

    war包里的jboss-web.xml文件

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

    <jboss-web><replication-config><replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger><replication-granularity>SESSION</replication-granularity><replication-field-batch-mode>True</replication-field-batch-mode></replication-config></jboss-web>

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    <jboss-web>

    <replication-config>

    <replication-trigger>SET_AND_NON_PRIMITIVE_GET

    </replication-trigger>

    <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 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集群的安装配置.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: jboss