外观
ADMQ RabbitMQ 集群部署
本文档指导部署 3 节点高可用 RabbitMQ 集群。
一、部署规划
| 节点 | IP | 角色 |
|---|---|---|
| Node 1 | 172.20.140.171 | 主节点 |
| Node 2 | 172.20.140.172 | 从节点 |
| Node 3 | 172.20.140.173 | 从节点 |
前置要求:
- 三台机器时间同步(NTP)
- 开放端口:
5672(AMQP)、15672(管理 API)、25672(集群通信)
二、所有节点:基础安装
在 Node 1、Node 2、Node 3 上分别执行:
2.1 创建目录并解压
bash
mkdir -p /apusic/admq-rabbitmq
cd /apusic/admq-rabbitmq
tar -xzf admq-rabbitmq-<version>.tar.gz2.2 放置授权文件
bash
cp license.xml /apusic/admq-rabbitmq/2.3 修改主机名称
主机名称只能包含字母、数字和连字符:
bash
# Node 1
hostnamectl set-hostname node1
# Node 2
hostnamectl set-hostname node2
# Node 3
hostnamectl set-hostname node32.4 修改 /etc/hosts
所有节点都需要添加:
172.20.140.171 node1
172.20.140.172 node2
172.20.140.173 node3三、配置各节点(可选)
编辑各节点 config/rabbitmq.conf:
Node 1(172.20.140.171)
ini
listeners.tcp.default = 5672
management.tcp.port = 15672
default_user = admq
default_pass = apusic_123Node 2 和 Node 3
配置与 Node 1 相同,部署目录和端口保持一致。
四、启动所有节点服务
依次在 Node 1、Node 2、Node 3 执行:
bash
bin/admq rabbitmq server
# 或后台模式
bin/admq-daemon rabbitmq start启动成功后验证端口:
bash
netstat -tlnp | grep 5672
# 预期看到 LISTEN 状态五、创建集群
在 Node 1 上执行,将其他节点加入集群:
bash
bin/admq rabbitmq cluster join rabbit@node2
bin/admq rabbitmq cluster join rabbit@node3验证集群状态:
bash
bin/admq rabbitmq cluster status
# 预期看到三个节点都已加入六、镜像模式(可选)
集群模式默认各节点只同步元数据,不同步队列数据。如需数据同步,启用镜像队列:
bash
# 设置策略:所有队列(^.*)在所有节点镜像
bin/admq rabbitmq admin set_policy ha-all "^.*" '{"ha-mode":"all","ha-sync-mode":"automatic"}' --priority 0 --apply-to queues建议: 生产环境优先使用 Quorum Queue(仲裁队列)替代镜像队列,可靠性更高。
七、验证集群
7.1 检查集群状态
bash
bin/admq rabbitmq cluster status7.2 检查端口
在每台服务器检查 5672 端口:
bash
netstat -tlnp | grep 56727.3 创建测试资源
bash
# 创建测试用户
bin/admq rabbitmq admin add_user test test123
bin/admq rabbitmq admin set_permissions -p / test ".*" ".*" ".*"
# 创建测试队列
curl -u admq:apusic_123 -X PUT http://localhost:15672/api/queues/%2F/test-queue \
-H "content-type: application/json" \
-d '{"durable": true}'如需技术支持,请联系 Apusic 技术支持团队。