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 小时前
利用外部Postgresql及zookeeper,启动Apache Dolphinscheduler3.1.9
分布式·postgresql·zookeeper·apache·工作流任务调度
搬砖天才、5 小时前
kafka集群安装
分布式·kafka
电商数据girl6 小时前
有哪些常用的自动化工具可以帮助处理电商API接口返回的异常数据?【知识分享】
大数据·分布式·爬虫·python·系统架构
即将雄起的运维玩家8 小时前
kafka-kraft+SASL版本升级3.7.0-->3.9.1
分布式·kafka
上上迁8 小时前
分布式接口幂等性的演进和最佳实践,含springBoot 实现(Java版本)
java·spring boot·分布式
找不到、了9 小时前
分布式理论:CAP、Base理论
java·分布式
Code季风10 小时前
微服务分布式配置中心:Gin Web 服务层与 gRPC 服务层集成 Nacos 实战
分布式·微服务·rpc·架构·go·gin·consul
紫璨月11 小时前
rabbitMQ读取不到ThreadLocal消息的bug
rabbitmq·bug·java-rabbitmq
王小王-12312 小时前
基于Hadoop的用户购物行为可视化分析系统设计与实现
大数据·hadoop·分布式·用户购物行为·电商日志分析
sql2008help12 小时前
5-Kafka-replication(副本机制)概念
分布式·kafka