ActiveMQ ZooKeeper 集群高可用配置

分類:技術 時間:2017-01-13

一. 準備條件:

(1) 最好是有3臺服務器【2臺也行, 只是根據(replicas/2) 1 公式至少得2個ActiveMQ服務存在才能保證運行, 自己測試的時候麻煩點, 關掉其中一個, 再開啟, 看會不會選舉到另一個ActiveMQ服務, 多試幾次可以看到效果】

(2) ActiveMQ安裝參考: ActiveMQ

(3) ZooKeeper安裝參考: ZooKeeper

二. 配置 :

ActiveMQ根目錄下的conf/activemq.xml, 原來默認如下:

lt;persistenceAdaptergt;              lt;kahaDB directory=quot;${activemq.data}/kahadbquot;/gt;          lt;/persistenceAdaptergt;

修改為(hostname根據服務器不同做出改變, 其他配置相同):

lt;persistenceAdaptergt;    lt;replicatedLevelDB      directory=quot;${activemq.data}/leveldbquot;      replicas=quot;3quot;      bind=quot;tcp://0.0.0.0:0quot;      zkAddress=quot;172.17.110.1:2181quot;      zkPassword=quot;passwordquot;      hostname=quot;172.17.110.1quot;      sync=quot;local_diskquot;      zkPath=quot;/activemq/leveldb-storesquot;      /gt;  lt;/persistenceAdaptergt;

directory : 存儲數據的路徑

replicas : 集群中的節點數【(replicas/2) 1公式表示集群中至少要正常運行的服務數量】, 3臺集群那么允許1臺宕機, 另外兩臺要正常運行

bind : 當這個節點成為Master, 它會綁定配置好的地址和端口來履行主從復制協議

zkAddress : ZooKeeper的ip和port, 如果是集群, 則用逗號隔開(這里作為簡單示例ZooKeeper配置為單點, 這樣已經適用于大多數環境了, 集群也就多幾個配置)

zkPassword : 當連接到ZooKeeper服務器時用的密碼

hostname : 本機ip

sync : 在認為消息被消費完成前, 同步信息所存貯的策略, 如果有多種策略用逗號隔開, ActiveMQ會選擇較強的策略(local_mem, local_disk則肯定選擇存貯在本地硬盤)

zkPath : ZooKeeper選舉信息交換的存貯路徑

三. 測試

Step1 :

根據ZooKeeper的策略, 從三臺ActiveMQ服務器選一臺運行, 其他兩臺等待運行, 只是做數據上的主從同步。

所以, 啟動ZooKeeper服務器和ActiveMQ服務器后, 訪問http://172.17.110.1:8161/admin/ 、http://172.17.110.2:8161/admin/、http://172.17.110.3:8161/admin/ 只會有一個成功。

Step2 :

關閉能訪問http://ip:8161/admin/的ActiveMQ服務, 訪問其他兩個, 其中有一個能訪問, 說明ActiveMQ ZooKeeper 集群高可用配置已經成功。

四. 參考文檔

- ActiveMQ官網

- ZooKeeper官網


Tags: ActiveMQ ZooKeeper

文章來源:http://www.importnew.com/23142.html


ads
ads

相關文章
ads

相關文章

ad