Skip to content

ADMQ RabbitMQ 集群部署

本文档指导部署 3 节点高可用 RabbitMQ 集群。


一、部署规划

节点IP角色
Node 1172.20.140.171主节点
Node 2172.20.140.172从节点
Node 3172.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.gz

2.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 node3

2.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_123

Node 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 status

7.2 检查端口

在每台服务器检查 5672 端口:

bash
netstat -tlnp | grep 5672

7.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 技术支持团队。

金蝶天燕(Apusic)企业级消息中间件套件