zookeeper + LevelDB + ActiveMQ實現消息隊列高可用


      通過集群實現消息隊列高可用。

      消息隊列在項目中存儲訂單、郵件通知、數據分發等重要信息,故對消息隊列穩定可用性有高要求。

      現在通過zookeeper選取activemq leader的形式實現當某個activemq節點出問題時,保證系統的可用性。

zookeeper做為服務選取器來選擇activemq作為master。

     開發環境將zoopkeeper zoo_sample.cfg拷貝並修改文件名稱為zoo.cfg。

     activemq 配置禁用kahadb啟用LevelDB 其中 zkAddress="127.0.0.1:2181" 為上邊zoopkeeper 配置

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

如開發機器都在同一台機器可以修改下文端口來實現多個activemq在同一台電腦上啟動

<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61617?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5673?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1884?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61615?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
</transportConnectors>

 

      掃碼關注公眾號


免責聲明!

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



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