MQ主從集羣配置---ZK集羣方式

安裝準備

zookeeper集羣安裝 參考上篇zk集羣環境搭建:https://blog.csdn.net/sinat_15946141/article/details/102418095

Zookeeper架構

節點 服務 目錄
192.168.100.12:2182 zookeeper1 /usr/local/zookeeper-cluster1
192.168.100.13:2183 zookeeper2 /usr/local/zookeeper-cluster2
192.168.100.14:2184 zookeeper3 /usr/local/zookeeper-cluster

ActiveMQ架構

節點 消息端口 jett管控臺端口 安裝目錄
192.168.100.12:62621 51511 8161 /usr/local/activemq-cluster1
192.168.100.13:62622 51512 8162 /usr/local/activemq-cluster2
192.168.100.14:62623 51513 8163 /usr/local/activemq-cluster3

安裝ActiveMq

服務器:192.168.100.12 MQ部署和配置:

#下載activemq
wget 官方地址

#解壓安裝包,解壓到/usr/local/activemq-cluster1目錄,注意-C是大寫的
tar -zxvf apache-activemq-5.11.1-bin.tar.gz  -C /usr/local/activemq-cluster1/

#修改jetty
vim /usr/local/activemq-cluster1/apache-activemq-5.11.1/conf/jetty.xml
#103行  左右,修改 端口 ,同樣其他幾個節點也修改
<property name="port" value="8161"/>

-------------------------------------------------------------

#修改brokername
#不要忘了,3個MQ實例的brokerName必須一致,要不然你會在集羣啓動時出現:
#Not enough cluster members when using LevelDB replication
#這樣的錯誤。
vim /usr/local/activemq-cluster1/apache-activemq-5.11.1/conf/activemq.xml
#40 行左右 brokerName
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-cluster" dataDirectory="${activemq.data}">

#修改persistenceAdapter
#參數說明
#   replicas 節點數
#   bind 綁定端口號
#   zkAddress zookeeeper的集羣 ip
#   hostname 主機名稱,一般配置主機的ip
#   zkPath 在zookeeepr上存儲的地址
#   zkPassword zk密碼,一般不配置
  <replicatedLevelDB
     directory="${activemq.data}/leveldb"
     replicas="3"
     bind="tcp://0.0.0.0:62621"
     zkAddress="192.168.100.12:2182,192.168.100.13:2183,192.168.100.14:2184"
     zkPassword=""
     hostname="192.168.100.12"
     zkPath="/activemq/leveldb-stores"
/>

#修改該通信端口51511 修改爲指定端口
<transportConnector name="openwire" uri="tcp://0.0.0.0:51511?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

服務器:192.168.100.13 MQ部署和配置:


#解壓安裝包,解壓到/usr/local/activemq-cluster2目錄,注意-C是大寫的
tar -zxvf apache-activemq-5.11.1-bin.tar.gz  -C /usr/local/activemq-cluster2/

#修改jetty
vim /usr/local/activemq-cluster2/apache-activemq-5.11.1/conf/jetty.xml
#103行  左右,修改 端口 ,同樣其他幾個節點也修改
<property name="port" value="8162"/>

-------------------------------------------------------------

#修改brokername
#不要忘了,3個MQ實例的brokerName必須一致,要不然你會在集羣啓動時出現:
#Not enough cluster members when using LevelDB replication
#這樣的錯誤。
vim /usr/local/activemq-cluster2/apache-activemq-5.11.1/conf/activemq.xml
#40 行左右 brokerName
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-cluster" dataDirectory="${activemq.data}">

#修改persistenceAdapter
#參數說明
#   replicas 節點數
#   bind 綁定端口號
#   zkAddress zookeeeper的集羣 ip
#   hostname 主機名稱,一般配置主機的ip
#   zkPath 在zookeeepr上存儲的地址
#   zkPassword zk密碼,一般不配置
  <replicatedLevelDB
     directory="${activemq.data}/leveldb"
     replicas="3"
     bind="tcp://0.0.0.0:62622"
     zkAddress="192.168.100.12:2182,192.168.100.13:2183,192.168.100.14:2184"
     zkPassword=""
     hostname="192.168.100.13"
     zkPath="/activemq/leveldb-stores"
/>

#修改該通信端口51511 修改爲指定端口
<transportConnector name="openwire" uri="tcp://0.0.0.0:51512?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

服務器:192.168.100.14 MQ部署和配置

#解壓安裝包,解壓到/usr/local/activemq-cluster3目錄,注意-C是大寫的
tar -zxvf apache-activemq-5.11.1-bin.tar.gz  -C /usr/local/activemq-cluster3/

#修改jetty
vim /usr/local/activemq-cluster3/apache-activemq-5.11.1/conf/jetty.xml
#103行  左右,修改 端口 ,同樣其他幾個節點也修改
<property name="port" value="8163"/>

-------------------------------------------------------------

#修改brokername
#不要忘了,3個MQ實例的brokerName必須一致,要不然你會在集羣啓動時出現:
#Not enough cluster members when using LevelDB replication
#這樣的錯誤。
vim /usr/local/activemq-cluster3/apache-activemq-5.11.1/conf/activemq.xml
#40 行左右 brokerName
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq-cluster" dataDirectory="${activemq.data}">

#修改persistenceAdapter
#參數說明
#   replicas 節點數
#   bind 綁定端口號
#   zkAddress zookeeeper的集羣 ip
#   hostname 主機名稱,一般配置主機的ip
#   zkPath 在zookeeepr上存儲的地址
#   zkPassword zk密碼,一般不配置
  <replicatedLevelDB
     directory="${activemq.data}/leveldb"
     replicas="3"
     bind="tcp://0.0.0.0:62623"
     zkAddress="192.168.100.12:2182,192.168.100.13:2183,192.168.100.14:2184"
     zkPassword=""
     hostname="192.168.100.14"
     zkPath="/activemq/leveldb-stores"
/>

#修改該通信端口51511 修改爲指定端口
<transportConnector name="openwire" uri="tcp://0.0.0.0:51513?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

啓動服務

#啓動服務
/usr/local/activemq-cluster1/apache-activemq-5.11.1/bin/activemq start
/usr/local/activemq-cluster2/apache-activemq-5.11.1/bin/activemq start
/usr/local/activemq-cluster3/apache-activemq-5.11.1/bin/activemq start

#停止服務
/usr/local/activemq-cluster1/apache-activemq-5.11.1/bin/activemq stop
/usr/local/activemq-cluster2/apache-activemq-5.11.1/bin/activemq stop
/usr/local/activemq-cluster3/apache-activemq-5.11.1/bin/activemq stop

#查看日誌
tail -f /usr/local/activemq-cluster1/apache-activemq-5.11.1/data/activemq.log
tail -f /usr/local/activemq-cluster2/apache-activemq-5.11.1/data/activemq.log
tail -f /usr/local/activemq-cluster3/apache-activemq-5.11.1/data/activemq.log

#連接zookeeper任意一個節點,查看節點信息
zookeeper/zookeeper1/zookeeper-3.4.10/bin/zkCli.sh -server 192.168.100.12:2182

查看節點信息如下:

[zk: localhost:2185(CONNECTED) 9] ls /
[activemq, dubbo, zookeeper, data, data2]
[zk: localhost:2185(CONNECTED) 10] ls /activemq
[leveldb-stores]
[zk: localhost:2185(CONNECTED) 11] ls /activemq/leveldb-stores
[00000000017, 00000000018, 00000000016]

注意:防火牆如果開啓,還要配置對應策略

 

項目的集羣配置:

broker-url: failover:(tcp://192.168.100.12:51511,tcp://192.168.100.13:51512,tcp://192.168.100.14:51513)?Randomize=false

registry:

  address:192.168.100.12:2182,192.168.100.13:2183,192.168.100.14:62623

  protocol:zookeeper

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章