程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> ActiveMQ筆記(2):基於ZooKeeper的HA方案,activemqzookeeper

ActiveMQ筆記(2):基於ZooKeeper的HA方案,activemqzookeeper

編輯:JAVA綜合教程

ActiveMQ筆記(2):基於ZooKeeper的HA方案,activemqzookeeper


activemq官網給出了3種master/slave的HA方案,詳見:http://activemq.apache.org/masterslave.html ,基於共享文件目錄,db,zookeeper。

下面演示了如何在本機搭建基於zookeeper的activemq集群:

一、在目錄activemq1下安裝activemq(可參考上篇內容),然後修改conf/activemq.xml

 1     <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
 2         ...
 3         <persistenceAdapter>
 4             <!--<kahaDB directory="${activemq.data}/kahadb"/>-->
 5             <replicatedLevelDB
 6                     directory="activemq-data"
 7                     replicas="3"
 8                     bind="tcp://0.0.0.0:0"
 9                     zkAddress="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
10                     zkSessionTimeout="2s"
11                     zkPath="/activemq/leveldb-stores"
12             />
13         </persistenceAdapter>
14         ...
15     </broker>

注:為保證zk的HA,本機至少要有3個zk的節點,可參考我以前的文章搭建.

 

二、將activemq1復制二分,變成activemq2、activemq3,由於是在本機測試,為防止端口沖突,這二個目錄下的activemq.xml,得修改端口

        <transportConnectors>
            <transportConnector name="openwire"
                                uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="amqp"
                                uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp"
                                uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt"
                                uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws"
                                uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
        </transportConnectors>

上面這幾個端口,大家看情況調整,只要保證3個activemq不沖突即可

 

三、啟動zk1,zk2,zk3,以及activemq1,activemq2,activemq3即可。

注:為方便觀察輸出,建議啟動activemq時,用./activemq.sh console啟動

 

四、測試Failover

正常啟動後,然後手動停掉master,然後觀察剩下的2個節點終端輸出,正常情況下,應該過一會兒,有一個會自動提升為master.

 

最後提醒一下:采用上述HA方案後,雖然系統可用性提高了,但是在本機上測試發現,跟上篇同樣的測試代碼和用例,單節點運行時,1秒可以發8k+條消息,采用zookeeper的HA方案後,每秒只能寫入500條消息左右

 

參考文章:

http://activemq.apache.org/replicated-leveldb-store.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved