Jboss EAP 7 JMS Clustering

王嘉鴻 2017/12/07 15:50:34
1865

Jboss EAP 7 JMS Clustering


簡介

在Jboss Cluster中可以設定queue、topic做共享

作者

王嘉鴻


1. 前言

       在正式環境 Server 通常是多台做 Cluster 處理,其中 Queue、Topic 也可以做 Cluster 方式共享,文章將以 standalone  Cluster  方式作為範例。
 

2. 環境

       JDK: 1.8
 

3. 實作

      章節中需要做兩件事情來驗證設定是否完成下載jboss eap 7、撰寫MDB程式來接收訊息
 
3.1 下載jboss eap 7
      https://developers.redhat.com/products/eap/download/
選擇Installer下載後會是以jar檔方式安裝
選擇Zip File 解開後就可以直接使用
 
準備兩個jboss Server
 
 
修改 jboss-eap-7.0-1\standalone\configuration\standalone-full-ha.xml
設定Server name,第一台設定 jboss1,第二台設定 jboss2
 
 
subsystem messageing-activemq
修改 Cluster password 兩台必須設定一樣 username 使用default
建立queue and topic 
可以在jboss console 中建立或是直接在設定檔中加入 
 
 
因為在同一台機器啟動兩個 jboss 會有 port 的問題,這在我們修改第二台 server port 增加100
 
 
啟動 Jboss Server 執行 bat 或是 sh 
standalone.bat -c standalone-full-ha.xml -b=192.168.1.164
-b: jboss.bind.address
如果只是在本機做測試不需要設定 default 127.0.0.1
 
3.2 測試程式
      這邊簡單撰寫簡單的MDB程式(queue、topic)來接收資料,這邊使用Spring 套件來完成
lookup  queue 、topic 
 
 
Spring Jms Listener
 
 
取得資料印出
 
 

4. 測試

      將程式部屬到jboss Server後,開啟standalone\log\Server.log 搜尋 jboss1或是jboss2,如果有看到下圖的結果表示 Cluster 是設定成功
 
 
將資料寫進 jboss(任一台) queue 或是 topic
Topic 測試可以在 Server.log 看見兩台都有拿到資料
 
 
Queue 測試可以在 Server.log 看見他自己自動做 Load Balancing
Jboss1
 
 
Jboss2
 
 

4. 總結

      由上述測試可以看見 Jboss Jms Cluster 設定好之後其中一台 Server 接收到資料可共享資料到其他 Server 上,如果是單一台作業即可完成可以選擇 queue 方式,如果需要每台 Server 都需通知到訊息可以選擇 topic 方式。
王嘉鴻