概述
理解RabbitMQ的集群原理可能需要花点功夫,但是配置RabbitMQ的集群则非常容易。
注意
如果有防火墙,请提前开放相关端口:
- client端通信口5672
- 管理口15672
- server间内部通信口25672
- erlang发现口:4369
步骤
1.修改hosts文件
在三个节点的hosts分别加入集群节点的配置信息:
# 修改hosts文件
vi /etc/hosts
# 加入集群节点
192.168.0.101 rabbitmq01
192.168.0.102 rabbitmq02
192.168.0.103 rabbitmq03
2.同步erlang.cookie文件
在192.168.0.101节点执行:
# 将rabbitmq01节点的erlang.cookie同步到rabbitmq02和rabbitmq03
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq02:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq03:/var/lib/rabbitmq/.erlang.cookie
也可以手动拷贝。
3.重启rabbitmq01节点的rabbitmq服务
在192.168.0.101节点执行:
# 重启rabbitmq服务
systemctl restart rabbitmq-server
4.创建集群
在192.168.0.102节点执行:
# 停止rabbitmq
rabbitmqctl stop_app
# 重置节点
rabbitmqctl reset
# 加入rabbitmq01
rabbitmqctl join_cluster rabbit@rabbitmq01
# 启动应用
rabbitmqctl start_app
在192.168.0.103节点执行:
# 停止rabbitmq
rabbitmqctl stop_app
# 重置节点
rabbitmqctl reset
# 加入rabbitmq01
rabbitmqctl join_cluster rabbit@rabbitmq01
# 启动应用
rabbitmqctl start_app
如果你要加入的节点类型是内存直接,可以执行:
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
5.查看集群状态
# 查看集群状态
rabbitmqctl cluster_status
结果:
[root@rabbitmq01 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq01 ...
[{nodes,[{disc,[rabbit@rabbitmq01,rabbit@rabbitmq02,rabbit@rabbitmq03]}]},
{running_nodes,[rabbit@rabbitmq03,rabbit@rabbitmq02,rabbit@rabbitmq01]},
{cluster_name,<<"rabbit@rabbitmq01">>},
{partitions,[]},
{alarms,[{rabbit@rabbitmq03,[]},
{rabbit@rabbitmq02,[]},
{rabbit@rabbitmq01,[]}]}]
6.也可以在控制台中查看