安裝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的簡單群集配置完畢。水平有限,錯誤之處請諒解。也希望大家的完善。