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

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