天天看點

5.ActiveMQ-Zookeeper主從搭建

ZooKeeper實作的MasterSlave實作方式,是對ActiveMQ進行高可用的一種有效的解決方案,高可用的原理:使用ZooKeeper(叢集)注冊所有的ActiveMQBroker。隻有其中的一個Broker可以對外提供服務(也就是Master節點),其他的Broker處于待機狀态,被視為Slave。如果Master因故障而不能提供服務,則利用ZooKeeper的内部選舉機制會從Slave中選舉出一個Broker充當Master節點,繼續對外提供服務。

5.ActiveMQ-Zookeeper主從搭建

​Zookeeper方案​

主機IP 消息端口 通信端口 節點目錄/opt/下
192.168.136.175 2181 2888:3888 zookeeper
192.168.136.176 2181 2888:3888 zookeeper
192.168.136.178 2181 2888:3888 zookeeper

​ActiveMQ方案​

主機IP 叢集通信端口 消息端口 控制台端口 節點目錄/opt/下
192.168.136.175 62621 51511 8161 activemq-cluster/node
192.168.136.176 62621 51511 8162 activemq-cluster/node
192.168.136.178 62621 51511 8163 activemq-cluster/node

​1. 下載下傳 zookeeper 和 activemq ​

​​http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/​​

​​http://activemq.apache.org/activemq-5156-release.html​​

​2. 執行 tar -zxvf zookeeper-3.4.13.tar.gz -C /opt/ 解壓 zookeeper 到 /opt 目錄下。​

​    執行 mv zookeeper-3.4.13/ zookeeper  改名 為 zookeeper ​

​    然後到 /etc/profile 下配置 zookeeper 環境變量。​

5.ActiveMQ-Zookeeper主從搭建

​3. 修改 /opt/zookeeper/conf/zoo_sample.cfg 檔案配置,執行 mv zoo_sample.cfg zoo.cfg 修改名稱。​

5.ActiveMQ-Zookeeper主從搭建

​配置完之後,回到上級目錄, mkdir data 建立 data 檔案夾。然後建立一個名為 myid 的檔案,檔案内容為0。另外兩台伺服器為1和2。​

5.ActiveMQ-Zookeeper主從搭建

​啟動 zookeeper​

5.ActiveMQ-Zookeeper主從搭建

​另外兩台機子,應該就是follower​

5.ActiveMQ-Zookeeper主從搭建
5.ActiveMQ-Zookeeper主從搭建

​3. 建立 /opt/activemq-cluster 檔案夾,然後執行 tar -zxvf apache-activemq-5.15.6-bin.tar.gz -C /opt/activemq-cluster/ 。接在 cd /opt/activemq-cluster,在 activemq-cluster 目錄下執行 mv apache-activemq-5.15.6 node 把檔案夾名字改為 node。​

5.ActiveMQ-Zookeeper主從搭建

​4. 修改node/conf/jetty.xml 檔案配置,端口改為8161,8162,8163。預設8161,有一個機器不需要修改。​

5.ActiveMQ-Zookeeper主從搭建

​5. 修改activemq.xml檔案配置​

​第一處修改:brokerName="activemq-cluster"​

5.ActiveMQ-Zookeeper主從搭建

​第二處修改:先注釋掉擴充卡中的kahadb,然後下入一下配置​

<replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:62621" zkAddress="192.168.136.175:2181,192.168.136.176:2181,192.168.136.175:2181" hostname="activemq-1" zkPath="/activemq/leveldb-stores">

5.ActiveMQ-Zookeeper主從搭建

​第三處修改:消息端口改為 51511​

5.ActiveMQ-Zookeeper主從搭建

​搭建完畢!!!​

​啟動 activemq,在bin目錄下執行 ./activemq start​

5.ActiveMQ-Zookeeper主從搭建

​執行 zkCli.sh 進入 zookeeper 。可以看見有三個挂載點。​

5.ActiveMQ-Zookeeper主從搭建

​或者用 ZooInspector 工具也可以看到​

5.ActiveMQ-Zookeeper主從搭建

​java 代碼中 URL 為:​

failover:(tcp://192.168.136.175:51511,tcp://192.168.136.176:51512,tcp://192.168.136.178:51513)?Randomize=false

​搭建中遇到的問題:​

防火牆需要關閉,不然zk叢集的時候連接配接不上。關閉防火牆:service iptables stop