activemq5.14+zookeeper3.4.9實現高可用


一、activeMQ主要的幾類部署方式比較
1、默認的單機部署(kahadb)
activeMQ的默認存儲的單機方式,以本地kahadb文件的方式存儲,所以性能指標完全依賴本地磁盤IO,不能提供高可用。

2、基於zookeeper的主從(levelDB Master/Slave)
5.9.0新推出的主從實現,基於zookeeper來選舉出一個master,其他節點自動作為slave實時同步消息。
因為有實時同步數據的slave的存在,master不用擔心數據丟失,所以leveldb會優先采用內存存儲消息,異步同步到磁盤。所以該方式的activeMQ讀寫性能都最好,特別是寫性能能夠媲美非持久化消息。
優點:
實現高可用和數據安全
性能較好
缺點:
因為選舉機制要超過半數,所以最少需要3台節點,才能實現高可用。

3、基於共享數據庫的主從(Shared JDBC Master/Slave)
可以基於postgres、mysql、oracle等常用數據庫。
每個節點啟動都會爭搶數據庫鎖,從而保證master的唯一性,其他節點作為備份,一直等待數據庫鎖的釋放。
因為所有消息讀寫,其實都是數據庫操作,activeMQ節點本身壓力很小,性能完全取決於數據庫性能。
優點:
實現高可用和數據安全
簡單靈活,2台節點就可以實現高可用
缺點:
穩定性依賴數據庫
性能依賴數據庫

二,activemq高可以用搭建

1搭建zookeeper集群,可以參考(http://www.cnblogs.com/ystq/p/6617596.html)

2下載activemq,5.14.0下載地址(http://activemq.apache.org/activemq-5140-release.html)

3上傳到三個服務器,192.168.199.71,192.168.199.72,192.168.199.73,並解壓

4修改conf/activemq.xml文件,約40行左右,把brokerName修改成統一的一個名稱

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="job-broker" dataDirectory="${activemq.data}"> 

5修改conf/activemq.xml文件,找到persistenceAdapter,把舊的kahaDB注釋掉,並加入新levelDB

<!--
<persistenceAdapter>
    <kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
-->
<persistenceAdapter>
    <replicatedLevelDB
      directory="${activemq.data}/leveldb"
      replicas="3"
      bind="tcp://0.0.0.0:0"
      zkAddress="192.168.199.71:2181,192.168.199.71:2181,192.168.199.71:2181"
      hostname="192.168.199.71"
      sync="local_disk"
      zkPath="/activemq/leveldb-stores"
      />
</persistenceAdapter>

6另外兩台服務器分別重復上一步,只是hostname修改為自己的ip

7分別啟動三台服務器的mq

8分別訪問三個服務器的mq的控制台,只有一台能訪問,證明配置成功  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM