Ubuntu 上搭建 RabbitMQ 集群实操指南
一 环境准备与前置条件
二 安装与基础配置
# 更新索引
sudo apt update
# 安装 Erlang(版本需与 RabbitMQ 兼容)
sudo apt install -y erlang-nox
# 导入 RabbitMQ 仓库密钥与源(示例为 Ubuntu 20.04 focal;若为 22.04,请将 focal 替换为 jammy)
curl -sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" \
| sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://ppa.launchpad.net/rabbitmq/rabbitmq-erlang/ubuntu focal main" \
| sudo tee /etc/apt/sources.list.d/rabbitmq.list
echo "deb [signed-by=/usr/share/keyrefs/com.rabbitmq.team.gpg] https://ppa.launchpad.net/rabbitmq/rabbitmq-server/ubuntu focal main" \
| sudo tee -a /etc/apt/sources.list.d/rabbitmq.list
sudo apt update
sudo apt install -y rabbitmq-server
sudo rabbitmq-plugins enable rabbitmq_management
sudo ufw allow 5672/tcp
sudo ufw allow 15672/tcp
sudo ufw allow 25672/tcp
sudo ufw enable
sudo rabbitmqctl add_user admin <StrongPassword>
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
三 集群搭建步骤
sudo systemctl stop rabbitmq-server
sudo scp rmq1:/var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
sudo systemctl start rabbitmq-server
# 仅停止应用层,不终止 Erlang 节点
sudo rabbitmqctl stop_app
# 重置节点元数据(首次加入或清库时使用)
sudo rabbitmqctl reset
# 加入集群(默认以磁盘节点加入;如需内存节点,追加 --ram)
sudo rabbitmqctl join_cluster rabbit@rmq1
# 启动应用
sudo rabbitmqctl start_app
sudo rabbitmqctl cluster_status
四 高可用与负载均衡
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
frontend rabbitmq-amqp
bind *:5672
default_backend rabbitmq_nodes
backend rabbitmq_nodes
balance roundrobin
server rmq1 192.168.1.11:5672 check
server rmq2 192.168.1.12:5672 check
server rmq3 192.168.1.13:5672 check
frontend rabbitmq-mgmt
bind *:15672
default_backend rabbitmq_mgmt_nodes
backend rabbitmq_mgmt_nodes
balance roundrobin
server rmq1 192.168.1.11:15672 check
server rmq2 192.168.1.12:15672 check
server rmq3 192.168.1.13:15672 check
五 常见问题与排查