1. 程式人生 > >ActiveMQ基於檔案共享的主從配置方案

ActiveMQ基於檔案共享的主從配置方案

假設兩臺裝有activeMq服務的伺服器分別為:
<span style="white-space:pre">	</span>192.160.102.90
	192.168.102.91 

並打算將91上activeMq目錄的資料儲存目錄共享給90的activeMq服務。

91上配置:

1、安裝NFS服務和rpcbind服務,伺服器上一般都安裝了這兩個服務,可以使用命令"service nfs status"和"service rpcbind status"檢視這兩個服務是否已啟動。如果系統中的確沒有安裝這兩個服務,請先安裝。

2、修改nfs的共享配置檔案:/etc/exports
# 檔案路徑
/usr/local/apache-activemq-5.7.0/data/kahadb 192.168.102.90(rw,no_root_squash)

其中/usr/local/apache-activemq-5.7.0/data/kahadb 為要共享的資料夾:192.168.102.90 為可以訪問該資料夾的地址(支援萬用字元*,如可以配置為192.168.102.*);rw表示支援讀寫操作;no_root_squash表示客戶機以root身份訪問時對映為本機的nobody使用者,這個引數很重要,必須指定,否則可能報沒有許可權訪問的錯誤。    

3、關閉防火牆(service iptables stop)或者將相關埠啟用(可以使用rpcinfo -p 192.168.102.91檢視需要開啟的埠號)。

4、重新啟動nfs服務和rpcbind服務。

90上配置:

1、同91上1的配置。

2、建立目錄/data/activemq

3、修改activeMq的配置檔案conf/activemq.xml,將
<span style="white-space:pre">	</span><persistenceAdapter>
            <kahaDB directory="/${activemq.data}/kahadb"/>
        </persistenceAdapter>
修改為:
  <span style="white-space:pre">	</span><persistenceAdapter>
            <kahaDB directory="/data/activemq"/>
        </persistenceAdapter>   

即 將activeMq的資料檔案儲存目錄修改為第2步建立的目錄:/data/activemq。

4、檢查可以掛載的檔案系統:showmount -e 192.168.102.91系統會列出可以掛在的檔案
Export list for 192.168.102.91:
/usr/local/apache-activemq-5.7.0/data/kahadb 192.168.102.90

5、掛載檔案系統
mount -t nfs 192.168.102.91:/usr/local/apache-activemq-5.7.0/data/kahadb /data/activemq
該命令就將91上目錄/usr/local/apache-activemq-5.7.0/data/kahadb掛載到本機目錄/data/activemq上。
當然,最後將該目錄自動掛載,避免系統重啟後需手動掛載。自動掛載即修改配置檔案/etc/fstab

這樣,主從配置完成。
修改程式碼中的brokerURL:failover://(tcp://192.168.102.90:61616,tcp://192.168.102.91:61616),啟用斷線重連機制。

這樣當kill掉90的activeMq時,系統就自動連線到91上了。如果啟動90後,還想讓其連線到90上,kill掉91的activeMq即可。

注意:

1、共享檔案的主從配置,是通過檔案共享鎖來實現的。先拿到檔案鎖的服務就是master,其它為slave服務,slave服務預設每10秒試圖拿一次檔案鎖,可以檢視activeMq的控制檯。

2、只有master的控制檯(如http://192.168.102.91:8161/admin)能夠訪問,slave的控制檯不能訪問,原因就是slave沒有拿到檔案鎖,不能訪問檔案。