从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于 ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。本文采用zookeeper来管理节点实现activemq的高可用。
ZooKeeper01
ZooKeeper02
ZooKeeper03
10.10.2.137
10.10.2.138
10.10.2.139
activemq.xml
主机
集群端口
replicatedLevelDB.bind
10.10.2.137
tcp://0.0.0.0:62623
10.10.2.138
tcp://0.0.0.0:62623
10.10.2.139
tcp://0.0.0.0:62623
给三台服务器分别安装activemq.
activemq的安装说明,请参照笔者的另一篇博客: linux下安装activemq
注: 三台机器要一致,此处,均改为"activemqCluster"
<persistenceAdapter>
<!--<kahaDB directory="${activemq.data}/kahadb"/>-->
<!-- activemq zookeeper high availiability -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62623"
zkAddress="10.10.2.137:2181,10.10.2.138:2181,10.10.2.139:2181"
hostname="10.10.1.137"
zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>
配置项说明:
至此,ActiveMQ的高可用集群搭建完成
前提:ZooKeeper集群已启动
分别启动三台ActiveMQ服务器:
[root@master conf]# activemq start
INFO: Loading '/usr/local/activemq/apache-activemq-5.15.9/bin/env'
INFO: Using java '/usr/local/jdk1.8.0_111/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/activemq/apache-activemq-5.15.9/data/activemq.pid' (pid '11135')
集群启动成功后,ActiveMQ会往ZooKeeper中注册集群信息。为了方便,我们使用ZooInspector工具来查看具体的内容。
从以上注册信息的内容我们可以看出,ActiveMQ01(10.10.2.137)被选举为主节点,并对外提供服务,其余两个节点作为从节点,处于待机状态,不提供服务。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章