一、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的控制台,隻有一台能通路,證明配置成功
轉載于:https://www.cnblogs.com/ystq/p/6618763.html