规划三台节点:192.168.46.130
192.168.46.131
192.168.46.132
分别在三台服务器上安装部署zookeeper,此处不进行赘述
在三台服务器上分别安装activemq,参考前面的单机版安装
配置
在三台机器上完成activemq安装之后,开始集群配置,通过配置使三个activemq实例组成集群。下面的配置在三个实例上保持一致,除了标红部分,主要修改配置文件conf/activemq.xml。
(1)broker-name的统一
将broker标签的brokerName属性设置为统一的值,我将这个值设置为“activeCluster”,只有三个实例的brokerName一致,zookeeper才能识别它们属于同一个集群。
如:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="activemqCluster" dataDirectory="${activemq.data}">
(2)persistenceAdapter的配置
persistenceAdapter设置持久化方式,主要有三种方式:kahaDB(默认方式)、数据库持久化、levelDB(v5.9.0提供支持)。
本文采用levelDB来进行持久化,并使用zookeeper实现集群的高可用,配置如下:
首先注释掉原来kahaDB的持久化方式,然后配置levelDB+zookeeper的持久化方式。
<!-- <persistenceAdapter><kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
-->
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="192.168.46.130:2181,192.168.46.131:2181,192.168.46.132:2181"
hostname="192.168.46.130"
sync="local_disk"
zkPath="/usr/local/mqData/leveldb-stores"/>
</persistenceAdapter>