zookeeper+activemq高可用集群搭建


 一、准備工作:

准備三台機器:
192.168.35.111
192.168.35.112
192.168.35.113

二、搭建zookeeper

三台機器上均要搭建zookeeper服務
// 下載zookeeper安裝包

# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
# tar -xvf zookeeper-3.4.10.tar.gz -C /opt
# cd /opt/zookeeper-3.4.10/conf/
# cp zoo_sample.cfg zoo.cfg

 

// 修改zoo.cfg文件
# grep -Ev '#|^$' zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper-3.4.10/data_zookeeper
clientPort=2181
server.1=192.168.35.111:2888:3888
server.2=192.168.35.112:2888:3888
server.3=192.168.35.113:2888:3888

 

 

// 第一個端口是master和slave之間的通信端口,默認是2888,第二個端口是leader選舉的端口,集群剛啟動的時候選舉或者leader掛掉之后進行新的選舉的端口默認是3888

這一步很重要,如果順序對應的數字不對,,會導致zookeeper服務啟動失敗
server.1服務器:echo 1 > /opt/zookeeper-3.4.10/zookeeper/myid
server.2服務器:echo 2 > /opt/zookeeper-3.4.10/zookeeper/myid
server.3服務器:echo 3 > /opt/zookeeper-3.4.10/zookeeper/myid

 

// 啟動zookeeper服務

# /opt/zookeeper-3.4.10/bin/zkServer.sh start #啟動服務
# /opt/zookeeper-3.4.10/bin/zkServer.sh stop #停止服務
# /opt/zookeeper-3.4.10/bin/zkServer.sh restart #重啟服務
# /opt/zookeeper-3.4.10/bin/zkCli.sh #連接集群

 

 

三、搭建activemq集群

三台機器上均要搭建activemq服務
// 下載activemq安裝包

# wget https://archive.apache.org/dist/activemq/5.12.0/apache-activemq-5.12.0-bin.tar.gz
# tar -xvf apache-activemq-5.12.0-bin.tar.gz -C /opt

 

 

// 修改配置文件 activemq.xml,使用性能比較好的LevelDB替換掉默認的KahaDB

brokerName 一定要設置相同
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-test" dataDirectory="${activemq.data}">

禁掉 原來的 < kahaDB directory="${activemq.data}/kahadb"/ >
<persistenceAdapter> <!--kahaDB directory="${activemq.data}/kahadb"/ --> <replicatedLevelDB directory="${activemq.data}/leveldb" replicas="3" bind="tcp://0.0.0.0:62621" zkAddress="192.168.35.111:2181,192.168.35.112:2182,192.168.35.113:2183" hostname="192.168.37.111" # 設為當前主機的ip zkPath="/activemq/leveldb-stores"/> </persistenceAdapter>

 

配置項說明:
directory:持久化數據存放地址
replicas:集群中節點的個數
bind:集群通信端口
zkAddress:ZooKeeper集群地址
hostname:當前服務器的IP地址,如果集群啟動的時候報未知主機名錯誤,那么就需要配置主機名到IP地址的映射關系。
zkPath:ZooKeeper數據掛載點
至此,ActiveMQ的高可用集群搭建完成。

 

四、啟動集群


前提:ZooKeeper集群已啟動
分別啟動三台ActiveMQ服務器

# /opt/apache-activemq-5.12.0/bin/activemq start // 啟動activemq服務
# /opt/apache-activemq-5.12.0/bin/activemq stop // 結束activemq服務
# /opt/apache-activemq-5.12.0/bin/activemq restart // 重啟activemq服務
# /opt/apache-activemq-5.12.0/bin/activemq status // 查看activemq服務狀態

 

集群啟動成功后,ActiveMQ會往ZooKeeper中注冊集群信息。為了方便,我們使用ZooInspector工具來查看具體的內容。
第一條注冊信息:

 

 

其他兩個

 

 

 


從以上三條注冊信息的內容我們可以看出,(192.168.35.182)被選舉為主節點,並對外提供服務,其余兩個節點作為從節點,處於待機狀態,不提供服務。

知道了ActiveMQ集群的主節點后,我們可以使用瀏覽器來訪問它的管理頁面,查看它是否能正常提供服務.

 

五、測試集群的高可用性
關掉主節點,使用ZooInspector工具來查看具體的內容,發現主節點的ip地址換了,並且節點顯示只剩下兩個。


免責聲明!

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



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