概述

理解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.也可以在控制台中查看

九、RabbitMQ的集群安装-LMLPHP

    04-24 07:06