linux下搭建activemq集群(高可用)
一. 简介从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于 ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。本文采用zookeeper来管理节点实现activemq的高可用。二. 集群部署说明2.1 节点信息ZooKeeper集群Z...
·
一. 简介
从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于 ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。本文采用zookeeper来管理节点实现activemq的高可用。
二. 集群部署说明
2.1 节点信息
ZooKeeper集群
ZooKeeper01 | ZooKeeper02 | ZooKeeper03 |
---|---|---|
10.10.2.137 | 10.10.2.138 | 10.10.2.139 |
ActiveMQ集群
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 |
2.2 安装activemq
给三台服务器分别安装activemq.
activemq的安装说明,请参照笔者的另一篇博客: linux下安装activemq
三. 配置高可用
3.1修改activemq.xml
修改brokerName
注: 三台机器要一致,此处,均改为"activemqCluster"
修改持久化适配器persistenceAdapter添加replicatedLevelDB元素
<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>
配置项说明:
- directory:持久化数据存放地址
- replicas:集群中节点的个数
- bind:集群通信端口
- zkAddress:ZooKeeper集群地址
- hostname:当前服务器的IP地址,如果集群启动的时候报未知主机名错误,那么就需要配置主机名到IP地址的映射关系。
- zkPath:ZooKeeper数据挂载点
至此,ActiveMQ的高可用集群搭建完成
3.2启动集群
前提: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)被选举为主节点,并对外提供服务,其余两个节点作为从节点,处于待机状态,不提供服务。
更多推荐
已为社区贡献37条内容
所有评论(0)