Zookeeper + ActiveMQ 叢集整合配置文檔
一:使用ZooKeeper實作的MasterSlave實作方式
是對ActiveMQ進行高可用的一種有效的解決方案, 高可用的原
理:使用ZooKeeper(叢集)注冊所有的ActiveMQ
Broker。隻有其中的一個Broker可以對外提供服務( 也就是Master節點) ,其
他的Broker處于待機狀态,被視為Slave。如果Master因故障而不能提供服務,
則利用ZooKeeper的内部選舉機制會從Slave中選舉出一個Broker充當Master節
點,繼續對外提供服務。
官網文檔如下:
http://activemq.apache.org/replicated-leveldb-store.html
二:部署方案, ActiveMQ叢集環境準備:
( 1) 首先我們下載下傳apache-activemq-5.11.1-
bin.tar.gz,到我們的一台主節點上去,然後我們在( 192.168.1.111一個節點
上實作叢集即可)
( 2) Zookeeper方案
主機IP | 消息端口 | 通信端口 | 節點目錄/usr/local/下 |
192.168.1.111 | 2181 | 2888:3888 | zookeeper |
192.168.1.112 | |||
192.168.1.113 |
( 3) ActiveMQ方案
叢集通信端口 | 控制台端口 | |||
62621 | 51511 | 8161 | activemq-cluster/node1/ | |
62622 | 51512 | 8162 | activemq-cluster/node2/ | |
62623 | 51513 | 8163 | activemq-cluster/node3/ |
1:首先搭建zookeeper環境
在192.168.1.111節點下software下,解壓zookeeper-3.4.5.tar.gz檔案,然後改名,操作如下:(在三台機器上都進行這樣的配置)
指令: mv zookeeper-3.4.5 zookeeper
配置環境變量:vim /etc/profile
添加:export ZOOKEEPER_HOME=/usr/local/zookeeper,并添加PATH
使環境變量生效:source /etc/profile
然後:cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
找到datadir修改為:/usr/local/zookeeper/data
在最下面添加:server.0=192.168.1.111:2888:3888
server.1=192.168.1.112:2888:3888
server.2=192.168.1.113:2888:3888
建立zookeeper/data檔案夾,并cd進入
執行vim myid
第一行添加0即可
在112中添加1,113中添加2
搭建完成
三台機器上運作:zkServer.sh start
任意一台運作:zkCli.sh可以連接配接上用戶端
2:繼續搭建activemq環境
( 1) 在192.168.1.111節點下,建立/usr/local/activemq-cluster檔案夾,解壓apache-activemq-5.11.1-
bin.tar.gz檔案,然後對解壓好的檔案改名,操作如下:
1 指令: mkdir /usr/local/activemq-cluster
2 指令: cd software/
3 指令: tar -zxvf apache-activemq-5.11.1-bin.tar.gz -C
/usr/local/activemq-cluster/
4 指令: cd /usr/local/activemq-cluster/
5 指令: mv apache-activemq-5.11.1/ node1
如此操作,再次反複解壓apache-activemq-5.11.1-
bin.tar.gz檔案到/usr/local/activemqcluster/下,建立node2和node3檔案夾,如下:

( 2) 那我們現在已經解壓好了三個mq節點也就是node1、 node2、 node3,下面
我們要做的事情就是更改每個節點不同的配置和端口(由于是在一台機器上實
現叢集)。
1 修改控制台端口(預設為8161) ,在mq安裝路徑下的conf/jetty.xml進
行修改即可。(三個節點都要修改,并且端口都不同)
1指令: cd /usr/local/activemq-cluster/node1/conf/
2指令: vim /usr/local/activemq-cluster/node1/conf/jetty.xml
三個節點都需要修改為8161、8162、8163!!!
2 叢集配置檔案修改:我們在mq安裝路徑下的conf/activemq.xml進行修
改其中的持久化擴充卡,修改其中的bind、 zkAddress、 hostname、 zkPath。
然後也需要修改mq的brokerName,并且每個節點名稱都必須相同。
指令: vim /usr/local/activemq-cluster/node1/conf/activemq.xml
第一處修改: brokerName=”activemq-cluster”(三個節點都需要修改)
第二處修改:先注釋掉擴充卡中的kahadb