安裝JBoss
[jboss@node1 ~]$ unzip jboss-4.0.5.GA.zip
[jboss@node1 ~]$ vi JBOSS_HOME/bin/run.conf
添加JAVA_HOME,查找并將紅色一行
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 #JAVA_HOME="/opt/java/jdk"
替換成
30 # be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
31 #
32 JAVA_HOME="/home/jboss/jdk1.5.0_14" //你的JDK安裝路徑
使用":wq"保存退出
2.6 JBoss的啟動和關閉
窗口啟動方式及后臺啟動方式(事實上,這種啟動是默認執行了一個啟動參數run.sh -c default,在JBOSS_HOME/server/中,有jboss的三種配置:all,default,minimal。你也可以自己復制其中的文件夾,命名為自己的服務,如:myserver,啟動的時候只需要run.sh -c myserver就行了。):
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh //啟動后此窗口不能再做他用
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh & //啟動后此窗口還可繼續進行其他操作
窗口啟動方式及后臺啟動方式的關閉:
窗口啟動方式的,在此窗口直接按“Ctrl+C”就行了
[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S //后臺啟動方式的關閉
注意:上面所說的JBoss4.0.5.GA的運行與關閉方式,由于JBoss的后續版本(4.2.0GA+)做了安全修改,不像JBoss4.0.5.GA那樣,默認就是啟動了全局暴露(就是外IP都可以訪問),而是需要增加一個啟動參數,才能被外IP訪問,因此啟動命令變成:
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 你的IP地址 //暴露此IP上的jboss服務,如果一個機器上有2以上的ip呢?如下命令,暴露所有ip上的jboss服務
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -b 0.0.0.0
隨之關閉命名也就變成:
[jboss@node1 ~]$ JBOSS_HOME/bin/shutdown.sh -S -s 你的IP地址
JBoss集群配置
3.3.1 加入集群:
編輯JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/server.xml文件(在jboss中,all的配置就是集群配置,而jbossweb-tomcat50.sar是jboss4.0.5.GA的配置,在4.2.0+里是jboss-web.deployer):
<Engine name="jboss.web" defaultHost="localhost">
... ...
</Engine>
為
<Engine name="jboss.web" defaultHost="localhost"
jvmRoute="node1">
... ...
</Engine>
<!--其中,node1為節點名,與前面mod_jk那里的workers.properties里的節點對應-->
3.3.2 激活mod_jk
編輯JBOSS_HOME/server/all/deploy/jbossweb-tomcat50.sar/META-INF/
jboss-service.xml文件:
<attribute name="UseJK">fasle</attribute>
<!--改為 -->
<attribute name="UseJK">true</attribute>
3.3.3 配置應用集群
Session復制:
修改YOURAPP/WEB-INF/web.xml文件,在web.xml文件的開頭增加distributable:
<?xml version="1.0"?>
<web-app http://java.sun.com/xml/ns/j2ee="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<distributable/>
<!-- ... -->
</web-app>
配置Session復制模式:
增加YOURAPP/WEB-INF/jboss-web.xml文件,添加如下內容(這都是默認,具體的要根據你的應用、運行環境來配置,可參考《JBoss企業級應用服務平臺群集指南》的英文官方文檔):
<?xml version="1.0"?>
<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>
3.4 JBoss集群的啟動與關閉
與前面的單個jboss啟動和關閉一樣,只是在啟動命令里的把default換成了all:
[jboss@node1 ~]$ JBOSS_HOME/bin/run.sh -c all
3.5 JBoss集群下的應用程序部署及卸載
JBoss集群里有個farming服務,即熱部署應用歸檔文件 (例如, EAR包, WAR 包或是 SAR 包。不是文件夾后面加個".war"的那種)。
將你的應用程序打好EAR等歸檔文件包放到集群中任意一臺JBoss的 [JBOSS_HOME/server/all/farm]文件夾中, JBoss會自動的復制此應用歸檔文件到集群中的其他節點并完成部署。
在運行的JBoss集群服務中,從任何一個節點的farm/ 目錄下刪除應用,應用程序首先從本地卸載,然后再從集群中其他服務節點的farm目錄刪除應用。
3.6 其他
上面所做的配置和修改都是使用Apache做前端HTTP負載的方式,如果使用其他硬件產品做前端負載(如:F5),則JBoss不需要修改,只需使用[JBOSS_HOME/bin/run.sh –c all]啟動即可。同時,不管哪種方式,JBoss都是要在同一個網段中(如:192.168.1.*)。
好了,到此jboss的簡單群集配置完畢。水平有限,錯誤之處請諒解。也希望大家的完善。