安裝準備
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&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&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&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