硬件環境:
三臺linux服務器:192.168.2.13,192.168.2.15,192.168.2.16。
推薦部署在三臺機器上,都部署在一臺機器還是會有單點故障,最少1G的內存就夠了。
下載最新版本的zookeeper,apache-activemq(都是linux的64位,jdk什麼的就不說了)
下面的配置三臺機器基本都是一樣,特別之處有備註,下面開始搭建。
1.新建文件夾 mqzk (可自己定義)
2.解壓zookeeper,activmq到此目錄。這裏路徑爲:~/mqzk/zookeeper, ~/mqzk/activmq
3.配置zookeeper
3.1 配置conf/zoo.cfg(zoo.cfg默認不存在的,需要把zoo_sample.cfg文件名稱修改爲zoo.cfg)
打開zoo.cfg,修改dataDir=當前zookeeper的data文件夾目錄(如果沒有data文件夾,就創建一個)
這裏有三臺zookeeper所以這裏要配置下集羣server,在zoo.cfg最後面添加三行:
server.1=192.168.2.13:2888:3888 (本機ip)
server.2=192.168.2.15:2888:3888 (第二臺機ip)
server.3=192.168.2.16:2888:3888 (第三臺機ip)
這裏的三個server,對應着3臺linux服務器(ok)。
保存退出。
3.2 進入 ~/mqzk/zookeeper/data文件夾,新建myid文件。打開myid文件,裏面輸入1保存退出。
輸入1的原因是因爲上面的server.1,所以這個值在3臺zookeeper裏是不一樣的。
3.3 到此配置結束。其他兩臺按照此配置就可以了。
3.4 假設三臺都配置好了,開始依次重啓這3臺服務器:進入zookeeper/bin目錄,執行./zkServer.sh start 啓動
4.配置activemq
4.1 這裏主要是配置activemq/confg目錄下的activemq.xml文件,打開activemq.xml文件。
找到 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="panguixiangbroker" dataDirectory="${activemq.data}">
將 brokerName的值改爲自己需要的字符串(我這裏是panguixiangbroker);
要特別注意這裏,這個brokerName的值必須三臺activemq一樣(這樣zookeeper纔會認爲是一個集羣的)
4.2 找到:
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
改爲:
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3" <!--這裏有三臺所以就3了-->
bind="tcp://0.0.0.0:0"
zkAddress="192.168.2.13:2181,192.168.2.15:2181,192.168.2.16:2181"
hostname="192.168.2.13" <!--當前機器的ip-->
zkPath="/activemq/leveldb-stores" sync="local_disk"/> <!--這個是默認的不用改-->
<!--<kahaDB directory="${activemq.data}/kahadb"/> -->
</persistenceAdapter>
保存退出
其他兩臺active mq的配置類似。
依次啓動3臺 activemq。(bin/linux-64/./activemq start)
在瀏覽器訪問:http://192.168.2.13:8161,http://192.168.2.15:8161,http://192.168.2.16:8161
發現只有一臺可以正常訪問,這就對了。
然後在spring的jms配置文件裏,引用集羣mq,例如: failover:(tcp://192.168.2.13:61616, tcp://192.168.2.15:61616 , tcp://192.168.2.16:61616 ) 。
到此全部結束,當然這只是個簡單的配置,更多配置參數請參考:
http://activemq.apache.org/replicated-leveldb-store.html
zookeeper有也有對外的api(java,ruby,python,php,等版本),可以根據業務需要開發適合直接的監控管理系統。
不在本文範圍之類。
zookeeper+activemq主備簡單配置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.