您好,登錄后才能下訂單哦!
這篇文章主要介紹“Jboss集群的安裝配置”,在日常操作中,相信很多人在Jboss集群的安裝配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Jboss集群的安裝配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
兩臺PC服務器:
信息項 | 說明 |
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) |
安裝介質 :
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 root 80671698 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 -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)
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介質文件
[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.GA PATH=$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 |
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]# ls bin 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 bin build cgi-bin conf error htdocs icons include lib logs man manual modules |
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 apache useradd apache –g apache
1 2 | groupadd apache useradd apache –g apache |
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 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
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=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=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代表粘連。
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加入下面一句話
<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> |
在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> |
在/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_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小應用,完成了以下集群負載及容災測試:
測試場景 | 測試結果 | 是否通過 |
59、63兩個JBoss節點狀態正常 | 請求會輪詢的平均轉發給兩個節點 | 通過 |
59節點宕掉,63節點正常 | 請求轉發到63節點,能正常返回 | 通過 |
63節點宕掉,59節點正常 | 請求轉發到59節點,能正常返回 | 通過 |
宕掉的其中一個節點重新啟動 | 請求會輪詢的平均轉發給兩個節點 | 通過 |
測試場景 | 測試結果 | 是否通過 |
59、63兩個JBoss節點狀態正常 | 請求只轉發給1個節點 | 通過 |
59節點宕掉,63節點正常 | 請求轉發到63節點,能正常返回 | 通過 |
63節點宕掉,59節點正常 | 請求轉發到59節點,能正常返回 | 通過 |
宕掉的其中一個節點重新啟動 | 請求只轉發給原來正常的節點 | 通過 |
JBoss | WebLogic | |
軟件費用 | 開源軟件,免費 | 商業軟件,收費 |
版本升級 | 版本跨度大,需要修改源代碼 | 升級方便,基本不需要修改 |
集群安裝部署 | 比較復雜 | 簡單 |
集群擴展 | 比較簡單 | 簡單 |
管理 | 每個節點進行管理 | 所有節點同一個控制臺統一管理 |
熱部署 | 支持,但要每個節點進行部署 | 支持而且更穩定,一次性部署整個集群 |
適用對象 | 中小型應用項目 | 企業級開發大項目 |
穩定性 | 一般 | 穩定性更高 |
技術支持 | 無 | 提供專業技術支持 |
到此,關于“Jboss集群的安裝配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。