以下是在Debian上搭建RabbitMQ集群的步骤:
安装Erlang
所有节点需先安装Erlang环境:
sudo apt-get update
sudo apt-get install -y erlang-nox
安装RabbitMQ
添加官方仓库并安装:
curl -sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg
echo "deb [signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] http://ppa.launchpad.net/rabbitmq/rabbitmq-server/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
sudo apt-get update
sudo apt-get install -y rabbitmq-server
配置Erlang Cookie
确保所有节点的/var/lib/rabbitmq/.erlang.cookie
文件内容一致(主节点生成后复制到其他节点):
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/.erlang.cookie
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
启动RabbitMQ服务
在所有节点上执行:
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
组建集群
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@主节点主机名(如rabbit@node1)
sudo rabbitmqctl start_app
验证集群状态
在任意节点执行:
sudo rabbitmqctl cluster_status
输出应显示所有节点已加入集群。
配置镜像队列(可选,高可用)
设置队列镜像策略(如所有节点同步):
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
启用管理插件(可选)
若需Web管理界面:
sudo rabbitmq-plugins enable rabbitmq_management
访问地址:http://节点IP:15672
,默认用户名/密码为guest
。
注意事项: