RabbitMQ集群Linux部署方法
导读:Linux 上部署 RabbitMQ 集群的标准流程 一 环境准备与版本建议 准备至少 3 台 Linux 主机(推荐 CentOS 7/8 或 Ubuntu 20.04+),主机名唯一,示例:rabbitmq1/rabbitmq2/ra...
Linux 上部署 RabbitMQ 集群的标准流程
一 环境准备与版本建议
- 准备至少 3 台 Linux 主机(推荐 CentOS 7/8 或 Ubuntu 20.04+),主机名唯一,示例:rabbitmq1/rabbitmq2/rabbitmq3,并配置 /etc/hosts 解析各节点主机名到 IP。
- 安装对应版本的 Erlang 与 RabbitMQ,保持集群节点版本一致;Erlang 与 RabbitMQ 存在版本对应关系,部署前务必核对官方兼容矩阵。
- 开放必要端口:5672(AMQP)、15672(管理插件/HTTP API)、25672(集群通信/节点间通信)。
- 建议节点均为 磁盘节点(disc) 组成对等集群,便于元数据与队列元信息一致;如需内存节点,仅在特定场景少量使用。
二 安装与基础配置
- 安装方式(二选一或按发行版选择其一)
- Ubuntu/Debian:
- sudo apt update & & sudo apt install -y rabbitmq-server
- CentOS/RHEL:
- sudo yum install -y erlang rabbitmq-server(或按发行版启用 EPEL 后安装)
- Ubuntu/Debian:
- 启用管理插件(便于 Web 管理与 API 调用):
- sudo rabbitmq-plugins enable rabbitmq_management
- 创建管理员用户(guest 仅本地访问):
- rabbitmqctl add_user admin StrongPass!
- rabbitmqctl set_user_tags admin administrator
- rabbitmqctl set_permissions -p “/” admin “." ".” “.*”
- 访问管理界面:浏览器打开 http://< 任一节点IP> :15672,使用上述账号登录。
三 集群搭建步骤
- 统一 Erlang Cookie(节点间认证关键)
- Cookie 文件路径:常见为 /var/lib/rabbitmq/.erlang.cookie(RPM/系统服务部署)或 ~/.erlang.cookie(源码/用户部署)。
- 将 rabbitmq1 的 cookie 复制到 rabbitmq2/rabbitmq3,权限设为 400,属主属组为 rabbitmq:rabbitmq:
- scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie
- chmod 400 /var/lib/rabbitmq/.erlang.cookie & & chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
- 启动各节点(建议使用后台模式)
- 方式 A:systemd
- sudo systemctl start rabbitmq-server
- 方式 B:命令行后台
- rabbitmq-server -detached
- 方式 A:systemd
- 组建集群(在从节点执行,示例以 rabbitmq2/rabbitmq3 加入 rabbitmq1)
- rabbitmqctl stop_app
- rabbitmqctl reset(首次加入或清数据时执行)
- rabbitmqctl join_cluster rabbit@rabbitmq1(如需内存节点:join_cluster --ram rabbit@rabbitmq1)
- rabbitmqctl start_app
- 验证集群状态
- rabbitmqctl cluster_status(应看到所有节点均为 disc 或包含 ram 的节点列表)
四 高可用与运维要点
- 镜像队列(队列数据冗余)
- 在任一节点设置策略,将所有队列镜像到全集群:
- rabbitmqctl set_policy ha-all “^” ‘{ “ha-mode”:“all”} ’
- 生产可选更精细策略(如按 vhost/队列名前缀 匹配,或设置 ha-sync-mode=automatic 提升故障切换时的同步体验)。
- 在任一节点设置策略,将所有队列镜像到全集群:
- 负载均衡与入口
- 在 192.168.10.4 部署 HAProxy,对外暴露 5672(AMQP)与 15672(管理),后端指向 192.168.10.1/2/3 的相同端口,实现连接与管理的负载均衡与故障转移。
- 节点维护与故障处理
- 安全下线节点:在目标节点执行
- rabbitmqctl stop_app & & rabbitmqctl reset & & rabbitmqctl start_app
- 主节点主动剔除故障节点:在存活节点执行
- rabbitmqctl forget_cluster_node rabbit@故障节点名
- 安全下线节点:在目标节点执行
- 常见问题排查
- 节点无法互相发现:检查 /etc/hosts、主机名一致性与 25672 连通性。
- 加入集群失败:核对 .erlang.cookie 内容、权限(400)与属主、节点是否执行了 reset、是否已 stop_app。
- 管理界面无法访问:确认 15672 开放、管理员账号权限正确、插件已启用。
五 快速验证清单
- 在 http://< 任一节点IP> :15672 登录管理员账号,查看 Overview 中节点列表与运行状态。
- 执行 rabbitmqctl cluster_status,确认 Disc Nodes/Running Nodes 包含全部节点。
- 使用客户端连接 5672 端口(或经由 HAProxy),声明队列并发送/消费消息,验证业务连通性与镜像策略是否生效。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: RabbitMQ集群Linux部署方法
本文地址: https://pptw.com/jishu/764922.html
