1. 程式人生 > 其它 >activeMq叢集搭建

activeMq叢集搭建

1.ActiveMq下載

下載地址:https://activemq.apache.org/components/classic/download/

2.ActiveMq解壓安裝

Tar -zxvf xxx(下載的安裝包名稱)

3.Master/Slave叢集配置

shared File System Mater Slave方式

(1)選擇一臺伺服器作為NFS伺服器(如:172.17.100.60

(2)在該伺服器上面建立一個可共享的目錄 /mydata/shareMQ目錄

/mydata下執行命令mkdir shareMQ

(3)/mydata/shareMQ目錄的許可權設定為777 chmod 777 /mydata/shareMQ

4)編輯NFS伺服器上面的/etc/exports檔案(剛開始開啟是個空檔案)

新增內容 /mydata/shareMQ 172.17.100.55(rw,sync) 172.17.100.57(rw,sync)

新增內容 /mydata/shareMQ 172.17.100.58(rw,sync) 172.17.100.59(rw,sync)

5)重啟nfs服務 service nfs restart

6)選擇兩臺伺服器作為activemq的執行環境 (如:172.17.100.55 172.17.100.57

7)分別在兩臺伺服器上面執行

Mount-tnfs172.17.100.60:/mydata/shareMQ /mydata/mq/apache-activemq-5.15.14/data/kahadb

172.17.100.60:/mydata/shareMQ剛開始建立的共享目錄

/mydata/mq/apache-activemq-5.15.14/data/kahadb掛載點,也是我們的MQ訊息持久化的位置。

(8)重複上面的步驟,第二步中的共享目錄新建一個/mydata/shareMQ5859

選擇兩臺伺服器作為activemq的執行環境 (如:172.17.100.58 172.17.100.59

則會有兩個master/slave叢集,每個叢集分別有兩個節點。

4.靜態網路連線配置

(1)在activemq根目錄下進入/conf,可以看到activemq.xml檔案

(2)編輯activemq.xml檔案,新增內容(

注意該配置資訊需要放到broker標籤下面

<networkConnectors>

<networkConnector uri="static:(tcp://172.17.100.58:61616,tcp://172.17.100.59:61616)" duplex="true" conduitSubscriptions="false"/>

</networkConnectors>

Duplex:代表是否雙向連線

conduitSubscriptions:是否把同一個broker的多個consumer當做一個來處理。如果配置為true,假定有1個消費者連線amq13個消費者連線amq2,那麼amq1的那個消費者將接收到50%的訊息,amq23個消費者一共接收到50%的訊息。所以這裡設定為false,這樣假定傳送100條訊息,那麼每個消費者消費25條訊息。

uri="static:(tcp://172.17.100.58:61616,tcp://172.17.100.59:61616):連線另外兩臺機器上面的mq

5.ActiveMq啟動、停止、檢視狀態

進入activemq根目錄下的bin目錄

啟動: ./activemq start

停止: ./activemq stop

檢視狀態:./activemq status

6.叢集高可用性測試

分別啟動172.17.100.55 172.17.100.57兩臺機器上面的mq服務,先啟動的獲取到檔案鎖為master,後啟動的為slave。只有master可以被訪問到,殺掉master服務,slave獲取檔案鎖變為master

7.消費者負載均衡測試

兩個可訪問的mq服務之間形成靜態的網路連線,兩個服務上面各連線有一個消費者和一個生產者,其中一個生產者投遞訊息到mq,兩個消費者各自消費一半的訊息。