ActoiveMQ主备环境搭建

来源:互联网 发布:吉大动物医学就业知乎 编辑:程序博客网 时间:2024/06/06 13:25

环境介绍

主机集群端口消息端口管控台端口172.20.1.23062621616168161172.20.1.231816162621616168161172.20.1.23262621616168161

activemq单节点安装

参考博客:ActiveMQ安装和基本使用

主备环境搭建

从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。

本教程采用可复制的 LevelDB方式:

在 3台机器ActiveMQ 节点中配置 conf/activemq.xml 中的持久化适配器。

修改其中 bind、zkAddress、hostname 和 zkPath。注意:每个 ActiveMQ 的 BrokerName 必须相同,否则不能加入集群。
172.20.1.230中的持久化配置:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq_ha" dataDirectory="${activemq.data}"><persistenceAdapter><!-- kahaDB directory="${activemq.data}/kahadb"/ --><replicatedLevelDBdirectory="${activemq.data}/leveldb"replicas="3"bind="tcp://0.0.0.0:62621"zkAddress="172.20.1.230:2181,172.20.1.231:2181,172.20.1.232:2183"hostname="172.20.1.230"zkPath="/activemq/leveldb-stores"/></persistenceAdapter></broker>
172.20.1.231中的持久化配置:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq_ha" dataDirectory="${activemq.data}"><persistenceAdapter><!-- kahaDB directory="${activemq.data}/kahadb"/ --><replicatedLevelDBdirectory="${activemq.data}/leveldb"replicas="3"bind="tcp://0.0.0.0:62621"zkAddress="172.20.1.230:2181,172.20.1.231:2181,172.20.1.232:2183"hostname="172.20.1.231"zkPath="/activemq/leveldb-stores"/></persistenceAdapter></broker>
172.20.1.232中的持久化配置:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemq_ha" dataDirectory="${activemq.data}"><persistenceAdapter><!-- kahaDB directory="${activemq.data}/kahadb"/ --><replicatedLevelDBdirectory="${activemq.data}/leveldb"replicas="3"bind="tcp://0.0.0.0:62621"zkAddress="172.20.1.230:2181,172.20.1.231:2181,172.20.1.232:2183"hostname="172.20.1.232"zkPath="/activemq/leveldb-stores"/></persistenceAdapter></broker>
以上参数介绍:
directory:复制的数据存放的目录
replicas:集群的节点数
bind:集群通信的端口(zookeeper选举的时候需要通信,就是该接口)
hostname:节点所在的ip地址
zkPath:zookeeper中数据的路径


依次启动 3台机器上的 ActiveMQ 节点:

/usr/local/activemq/bin/activemq start

使用ZooInspector查看集群的节点状态:

①下载并解压ZooInspector
下载地址:点此下载

②双击启动build/zookeeper-dev-ZooInspector.jar

③按图提示登录zookeeper管理中心



如果双击无法运行,可能是没有配置jdk,如果配置jdk依然无法运行,使用以下方式
cd D:\ProgramFiles\ZooInspector\build
Java -Dfile.encoding=UTF-8 -jar zookeeper-dev-ZooInspector.jar

④查看各节点
以下第一张图展现了 00000000019 的值(每次关闭重启一次,这个数都会加1,第一次启动是00000000000),可以看到 elected 的值是不为空,说明这个节点是 Master,其他两个节点是 Slave。




登录activemq管控台

注意:这里说明一下,管控台的话只有master的管控台是可以登录的,其他两个slave是无法登陆的
根据上面查看的节点,所以访问172.20.1.230节点
http://172.20.1.230:8161/



测试代码

使用跟spring整合之后的代码测试,只需要把配置文件中的地址换成一下地址就可以了:
failover:(tcp://192.168.1.81:51511,tcp://192.168.1.82:51512,tcp://192.168.1.83:51513)?randomize=false