RabbitMQ搭建集群

要在 Windows 或 Linux(CentOS 7.9) 上搭建 RabbitMQ 集群,基本思路是:


🗂️ 架构说明

主机 角色 IP 节点名称
A 主节点 10.152.132.1 rabbit@node1
B 备节点 10.152.132.2 rabbit@node2

集群目标:两台 RabbitMQ 节点加入同一个集群。


🧱 搭建 RabbitMQ 集群步骤(Linux/CentOS)

说明:默认你已安装好 RabbitMQ 和 Erlang,并能访问 rabbitmqctl 命令。


✅ 1. 设置主机名 & 配置 hosts

在两台机器上,设置好各自主机名,并写入 /etc/hosts 文件:

🖥️ 节点 A(主节点:10.152.132.1)
bash 复制代码
hostnamectl set-hostname node1
echo "10.152.132.1 node1" >> /etc/hosts
echo "10.152.132.2 node2" >> /etc/hosts
🖥️ 节点 B(备节点:10.152.132.2)
bash 复制代码
hostnamectl set-hostname node2
echo "10.152.132.1 node1" >> /etc/hosts
echo "10.152.132.2 node2" >> /etc/hosts

在 RabbitMQ 中,Erlang Cookie 是集群通信的"密码"。必须在所有节点中一致。

在主节点 node1 上执行:

bash 复制代码
cat /var/lib/rabbitmq/.erlang.cookie

将内容复制到备节点 node2 的相同位置,命令如下:

bash 复制代码
scp /var/lib/rabbitmq/.erlang.cookie root@10.152.132.2:/var/lib/rabbitmq/

复制后请确保权限正确:

bash 复制代码
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

✅ 3. 启动主节点

在主节点 10.152.132.1 启动 RabbitMQ:

bash 复制代码
systemctl start rabbitmq-server
rabbitmqctl status

✅ 4. 加入备节点到主节点的集群

备节点 执行:

bash 复制代码
# 停止 rabbitmq 应用
rabbitmqctl stop_app

# 将本节点重置(清空现有状态)
rabbitmqctl reset

# 加入主节点的集群
rabbitmqctl join_cluster rabbit@node1

# 启动 rabbitmq 应用
rabbitmqctl start_app

✅ 5. 查看集群状态

在任意一个节点执行:

bash 复制代码
rabbitmqctl cluster_status

应看到:

复制代码
{nodes,[{disc,[rabbit@node1,rabbit@node2]}]}

✅ 6. 开启 Web 管理插件并访问

bash 复制代码
rabbitmq-plugins enable rabbitmq_management

访问地址:


✅ 7. 添加 HA 队列策略(可选)

让所有队列在两个节点间自动同步复制:

bash 复制代码
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

🚨 注意事项

问题 原因 / 解决方式
加入失败 Cookie 不一致,或 /etc/hosts 未配置
连接被拒绝 RabbitMQ 未启动,或防火墙阻止了端口
Web 访问不了 端口 15672 未开放,或服务未启用

✅ 所需开放端口(两节点之间必须互通)

端口号 说明
4369 epmd(Erlang 分布式端口管理)
5672 RabbitMQ AMQP 服务端口
15672 Web UI 管理端口(HTTP)
25672 RabbitMQ 节点间通信端口

相关推荐
蜡笔小柯南2 小时前
每秒扛住10万请求?RedissonRateLimiter 分布式限流器详解
分布式·redisson·滑动窗口·ratelimiter
一行•坚书3 小时前
Redisson分布式锁会发生死锁问题吗?怎么发生的?
java·分布式·后端
半桶水专家4 小时前
kafka Partition(分区)详解
分布式·kafka
何双新4 小时前
第一讲、Kafka 初识与环境搭建
分布式·kafka·linq
阿登林4 小时前
如何使用Kafka处理高吞吐量的实时数据
分布式·kafka
在未来等你5 小时前
Kafka面试精讲 Day 6:Kafka日志存储结构与索引机制
大数据·分布式·面试·kafka·消息队列
1101480750@qq.com5 小时前
66关于kafka:consumer_offsets日志不能自动清理,设置自动清理规则
分布式·kafka
在未来等你5 小时前
Kafka面试精讲 Day 3:Producer生产者原理与配置
大数据·分布式·面试·kafka·消息队列
Hello.Reader5 小时前
Kafka 分层存储(Tiered Storage)从 0 到 1 的配置、调优与避坑
分布式·kafka
bjzw5 小时前
Kafka常见问题及解决方案
分布式·kafka