ActiveMQ openwire協議集羣

1、準備工作

兩臺安裝完成ActiveMQ的虛擬機,IP地址爲192.168.106.233 和 192.168.106.158。當單點時ActiveMQ啓動正常。

2、NFS配置

本例採用共享文件的方式集羣,共享文件的方式通過NFS實現。

① 設置192.168.106.233NFS服務器

檢查233虛擬機NFS服務是否啓動,執行以下命令:

[root@localhost share_dir] # rpm -q nfs-utils portmap

如果有顯示,則說明已正確安裝;若沒有則安裝這兩個服務。

② 檢查服務是否啓動

[root@localhost share_dir] # service nfs status

rpc.mountd (pid 12810) is running... 
nfsd (pid 12807 12806 12805 12804 12803 12802 12801 12800) is running... 
rpc.rquotad (pid 12795) is running...

[root@localhost share_dir] # service portmap status

portmap (pid 12728) is running... 

若沒有啓動,則執行以下命令,則執行以下命令:

[root@localhost share_dir] # service portmap restart

[root@localhost share_dir] # service nfs restart

③ 設置共享文件

打開/etc/exports文件,並添加以下內容:

[root@localhost share_dir] # vi /etc/exports

添加內容:

/home/guoyanjun/ActiveMQ/AMQdir/ 192.168.106.233(rw,sync,no_root_squash) 192.168.106.158(rw,sync,no_root_squash)

語義:將NFS服務器共享目錄給客戶機IP,並給予讀寫、同步、不映射root用戶。

完成以上設置後,保存退出,並重啓服務。

④ 掛載NFS客戶端

233 服務器上建立共享目錄:/home/guoyanjun/ActiveMQ/data/share_dir

執行以下命令:

[root@localhost share_dir] # mount -t nfs 192.168.106.233: /home/guoyanjun/ActiveMQ/AMQdir/  /home/guoyanjun/ActiveMQ/data/share_dir

158 服務器上建立共享目錄:/home/ActiveMQ/data/share_dir

執行以下命令:

[root@localhost share_dir] # mount -t nfs 192.168.106.233: /home/guoyanjun/ActiveMQ/AMQdir/  /home/ActiveMQ/data/share_dir

語義:將兩個服務器上的目錄掛載到/home/guoyanjun/ActiveMQ/AMQdir/目錄上

⑤ 驗證共享目錄

233服務器的/home/guoyanjun/ActiveMQ/data/share_dir目錄中創建任意一個文件,在158服務器的/home/ActiveMQ/data/share_dir目錄中查看是否存在。若存在則說明文件共享成功。

3、ActiveMQ配置文件修改

① 配置ActiveMQ服務器,主要爲配置$ACTIVEMQ_HOME/conf/activemq.xml文件

158服務器上,打開activemq.xml文件,修改爲以下

81         <persistenceAdapter>

82             <!-- kahaDB directory="${activemq.data}/kahadb"/-->

83             <kahaDB directory="/home/ActiveMQ/data/share_dir/kahadb"/>

84         </persistenceAdapter>

 

233服務器上,打開activemq.xml文件,修改爲以下

81  <persistenceAdapter>

82     <!-- kahaDB directory="${activemq.data}/kahadb"/-->

83     <kahaDB directory="/home/guoyanjun/ActiveMQ/data/share_dir/kahadb"/>

84  </persistenceAdapter>

4、啓動ActiveMQ服務

重新啓動ActiveMQ服務

5、測試

在服務重新啓動後,打開$ACTIVEMQ_HOME/data/activemq.log文件,看到233正常啓動,158機器會有未獲取到文件鎖的相關提示,或者158正常啓動233機器未獲得文件鎖的相關提示。

 

分別起停.240.241機器上的ActiveMQ,master-slave切換正常。

修改ActiveMQ自帶例子裏的程序,讓生產者線程不斷生產消息以及消費者線程不斷消費消息。檢查在masterslave切換時數據無丟失。

測試用例:分別修改ListenerPublisher程序部分,測試部分使用openwire協議。

ActiveMQConnectionFactory  factory  =  new ActiveMQConnectionFactory("failover:(tcp://192.168.106.233:61616,tcp://192.168.106.158:61616)");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章