jboss eap 6.3 域(Domain)模式配置


jboss提供了二種運行模式:standalone(獨立運行模式)、domain(域模式),日常開發中,使用standalone模式足已;但生產部署時,一個app,往往是部署在jboss集群環境中的,如果所有jboss server均采用standalone模式,會給運維帶來極大的工作量,需要每台jboss server上逐一部署/更新,顯然不適合。

domain模式正是為了解決這一問題,該模式下,所有jboss server可以划分成不同的group(注:這里的jboss server並不一定要對應某台物理機或虛擬機,一個os上,可以同時run多個jboss server實例,所以本文中的jboss server均指某個運行中的jboss server instance),每個group中可以包含多個jboss server,所有這些jboss server中,可以指定一台做為域控制器(domain controller),俗稱master server,其它jboss server均為Home Controller(俗稱slave server)。

master上可以控制所有jboss server,並監控其運行情況,部署應用時,一個war包,只需要部署到group上,該group中的所有jboss server即會同步自動部署。

下面是配置步驟:

環境:

    windows ,jboss eap 6.3

機器資源:

    172.21.129.181 (master)、172.21.129.57(slave57)、172.21.129.128(slave128) - 即:181為主機,57、128這二台機器為slave

 

一、下載安裝jboss eap 6.3 

目前jboss eap的最新版本是6.3 ,下載地址 https://www.jboss.org/products/eap/download/

下載完成后,解壓到某個目錄即可 (下面用jboss_home代替jboss根目錄)

 

二、master server配置

2.1 進入 "jboss_home\domain\configuration",打開host.xml

 1     <interfaces>
 2         <interface name="management">
 3             <inet-address value="${jboss.bind.address.management:172.21.129.181}"/>
 4         </interface>
 5         <interface name="public">
 6            <inet-address value="${jboss.bind.address:172.21.129.181}"/>
 7         </interface>
 8         <interface name="unsecure">
 9             <!-- Used for IIOP sockets in the standard configuration.
10                  To secure JacORB you need to setup SSL -->
11             <inet-address value="${jboss.bind.address.unsecure:172.21.129.181}"/>
12         </interface>
13     </interfaces>
View Code

將所有127.0.0.1的地址,換成master server對應的真實IP(否則,無法從遠程通過瀏覽器,訪問jboss 管理控制台)

2.2 以domain模式啟動master server

 jboss_home\bin\domain.bat

2.3 進入master jboss 控制台

http://172.21.129.181:9990/console/

首次進入,可能會提示沒有創建管理員帳號,可參考 vmware安裝cent os 6.5 + oracle 11g xe + jboss eap 6.2 + weblogic 12c+ webshpere mq 7.5 一文中的 3.4 c)中的相關內容,創建管理員

2.4 創建group、server

進入控制台后,可以看到jboss已經默認創建了一些group及server,先把他們全干掉吧(通常,我們會創建自己的group/server)

參考下面這個界面,創建二個組 my-group-1,my-group-2

tips: 創建group時,profile建議選擇full-haha (以后會講如何做jboss集群配置,負載均衡、智能容錯時,需要使用ha系列的profile)

重要提示:同一個局域網里如果有多個master,如果這些master上的group名稱有重復,則只有第一master能啟動成功后,后面的master啟動時會報錯,建議每個master上的group命名時,加上master的IP,比如group+IP地址,這樣肯定不會重復!

 

參考下面的圖,在master server上創建4個server

注:創建server時,有一個Port Offset選項(參考下圖)

解釋一下,默認情況下server的端口是8080,Port Offset指端口偏移量,如果按上圖配置,Port Offset指定為5,則表示該server創建后,對應的端口為8080+5,即8085端口 (可以用http://172.21.129.181:8085/ 來訪問)

 

tips: 如果一個server已經處於started狀態,是無法remove的,可以先到下面的界面,把該server stop掉,然后再回這個界面,就可以Remove了

 

三、Slave Server配置

3.1 將jboss eap 6.3解壓到172.21.129.57這台slave機器上

3.2 進入jboss_home\domain\configuration,將原來的host.xml改名備份,然后再將host-slave.xml復制一份,並改名為host.xml

3.3 修改host.xml

a)

1         <management-interfaces>
2             <native-interface security-realm="ManagementRealm">
3                 <socket interface="management" port="${jboss.management.native.port:9099}"/>
4             </native-interface>
5         </management-interfaces>

這里的9999端口,改成其它不使用的端口(比如:9099),否則slave server上的9999端口,與master server上的管理端口沖突,最后啟動時,會報錯

b)

1     <domain-controller>
2        <remote host="${jboss.domain.master.address:172.21.129.181}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
3     </domain-controller>

第2行,指定master server的IP(本文中為172.21.129.181),這樣slave在啟動時,才知道去連哪一台master

c)

 1     <interfaces>
 2         <interface name="management">
 3             <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
 4         </interface>
 5         <interface name="public">
 6            <inet-address value="${jboss.bind.address:0.0.0.0}"/>
 7         </interface>
 8         <interface name="unsecure">
 9             <!-- Used for IIOP sockets in the standard configuration.
10                  To secure JacORB you need to setup SSL -->
11             <inet-address value="${jboss.bind.address.unsecure:0.0.0.0}"/>
12         </interface>
13     </interfaces>

原來的127.0.0.1,改成slave server的真實IP或0.0.0.0,否則slave上的應用,只能在slave本機訪問

d)

1     <servers>
2         <server name="slave-server-8082" group="my-group-2">
3             <socket-bindings port-offset="2"/>
4         </server>
5         <server name="slave-server-8083" group="my-group-2">           
6             <socket-bindings port-offset="3"/>
7         </server>
8     </servers>

手動在slave上創建二個server,並加入到my-group-2(注:group的值,必須是在master server上創建過的,否則啟動時,slave上的server無法正常加入到master相關的group中)

e)

1 <host name="slave57" xmlns="urn:jboss:domain:1.6">

最開頭的host節點上,加一個name="xxx"的屬性(本文中為slave57),這個name值最終會顯示在master server的jboss 控制台中,建議起一個容易識別的名稱

 

四、安全認證配置

4.1 回到master server上,添加一個名為slave57的管理員帳號,並記住最后生成的<secret value="xxxx" />的字符串(xxx為密碼經過base64處理后的內容)

4.2 回到slave57這台server中,再次編輯host.xml,將<secret value="xxxx" />的內容替換

1 <server-identities>
2                      <!-- Replace this with either a base64 password of your own, or use a vault with a vault expression -->
3                      <!--<secret value="c2xhdmVfdXNlcl9wYXNzd29yZA=="/>-->
4                      <secret value="c2xhdmU1Ny4xMjM=" />
5                 </server-identities>

中的<secret value=... />部分

解釋:slave啟動時,需要連接注冊到master的jboss中,連接過程需要安全認證,這里的secret相當於認證的鑰匙,而認證的用戶名即為:正在連接的slave機器上jboss中host.xml中<host name='xxx'>這個節點中的name值,所以4.1需要在master中創建一個名為“slave57”的管理員

4.3 依次以domain模式啟動master、slave57 上的jboss

順利的話,master的jboss控制台里,就能看到slave57已經自動注冊進來了

 

另一台slave服務器,類似的做法,host.xml中<host>節點的name為slave128,創建的server為

1     <servers>
2         <server name="slave-server-8080" group="my-group-1"/>
3         <server name="slave-server-8081" group="my-group-1">
4             <!-- server-two avoids port conflicts by incrementing the ports in
5                  the default socket-group declared in the server-group -->
6             <socket-bindings port-offset="1"/>
7         </server>
8     </servers>

這樣,我們就創建了8個jboss server實例(4個在master server上,另外4個分散在slave57、slave128上),共划分為2組。

 

五、應用部署

進入部署界面(如上圖),點擊Add,添加一個war包,再Assign,分配到某一個group,即可自動部署到該group下所有server。如果想把一個app,部署到多個group,也沒問題,再次點擊assign,再分配到另一個group。

以本文為例,部署了一個名為SSO的應用到my-group-1、my-group-2后,對應的8台jboss server應該均可訪問,即:

http://172.21.129.181:8080/SSO/

http://172.21.129.181:8081/SSO/

http://172.21.129.181:8082/SSO/

http://172.21.129.181:8083/SSO/

http://172.21.129.57:8082/SSO/

http://172.21.129.57:8083/SSO/

http://172.21.129.128:8080/SSO/

http://172.21.129.128:8081/SSO/

這8個url均可訪問

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM