1. 环境和版本
apache-activemq-5.16.0
zookeeper-3.4.6.tar.gz
jdk-8u211-linux-x64.tar.gz
2. 要求具备ZK集群并可以成功启动
可以参考zookeeper集群搭建
3. 集群部署规划列表
主机 | zookeeper集群端口 | AMQ集群bind端口 | AMQ消息tcp端口号 | 管理控制台端口 | AMQ节点安装目录 |
---|---|---|---|---|---|
175.24.20.249 | 2191 | bind=“tcp://0.0.0.0:63631” | 61617 | 8162 | /mq_cluster/mq_node01 |
175.24.20.249 | 2192 | bind=“tcp://0.0.0.0:63632” | 61618 | 8163 | mq_cluster/mq_node02 |
175.24.20.249 | 2193 | bind=“tcp://0.0.0.0:63633” | 61619 | 8164 | mq_cluster/mq_node03 |
4. 创建3台集群目录
mkdir /mq_cluster/
cd /mq_cluster/
cp -r /opt/apache-activemq-5.16.0 mq_node01
cp -r mq_node01 mq_node02
cp -r mq_node01 mq_node03
最终结果
5. 修改管理控制台端口
mq_node01 :
修改mq_node01/conf目录下的jetty.xml文件host 若为127.0.0.1,改为0.0.0.0,否则将访问不了前台主页。
mq_node02:
mq_node03:
6. hostname名字映射
vi /etc/hosts
ip后面名字 llhhmq-server 可以自己自定义
7.ActiveMQ集群配置
(1) mq_node01 / mq_node02 / mq_node03 这三个节点的brokerName要求一致:
在activemq.xml文件中修改:
注意:3个都要修改!!!
(2) 3个节点的持久化配置:
在activemq.xml文件中修改:
mq_node01 : 注释原本的kahadb,添加leveldb配置
<persistenceAdapter>
<replicatedLevelDB
directory="{activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:63631"
zkAddress="localhost:2191,localhost:2192,localhost:2193"
zkPath="/activemq/leveldb-stores"
sync="local_disk"
hostname="llhhmq-server"/>
</persistenceAdapter>
mq_node02
<persistenceAdapter>
<replicatedLevelDB
directory="{activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:63632"
zkAddress="localhost:2191,localhost:2192,localhost:2193"
zkPath="/activemq/leveldb-stores"
sync="local_disk"
hostname="llhhmq-server"/>
</persistenceAdapter>
mq_node03
<persistenceAdapter>
<replicatedLevelDB
directory="{activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:63633"
zkAddress="localhost:2191,localhost:2192,localhost:2193"
zkPath="/activemq/leveldb-stores"
sync="local_disk"
hostname="llhhmq-server"/>
</persistenceAdapter>
8. 修改各节点的消息端口
在activemq.xml文件中修改:
mq_node01
mq_node02
mq_node03
9. 按顺序启动ActiveMQ节点,这步前提是zk集群已经成功启动运行
放在脚本文件中统一启动:
cd /mq_cluster/mq_node01/bin
./activemq start
cd /mq_cluster/mq_node02/bin
./activemq start
cd /mq_cluster/mq_node03/bin
./activemq start
启动命令:./amq_batch.sh
查看是否启动:ps -ef |grep activemq|grep -v grep
成功启动:
10. zk集群的节点状态说明
(1)3台zookeeper集群中任意连一台
客户端连接命令:./zkCli.sh -server 127.0.0.1:2191
出现如下说明3个节点已经连上了:
(2)查看master
get /activemq/leveldb-stores/00000000017 # 注意我登陆多次所以编号为17、18、19
elected的值不是空,说明这个节点是Master,其他两个节点是Slave
访问master成功: