在Debian系统上搭建RabbitMQ集群需要以下步骤:
安装Erlang:
sudo apt-get update
sudo apt-get install erlang-nox
添加RabbitMQ的APT仓库: 创建一个新的APT仓库文件:
sudo tee /etc/apt/sources.list.d/rabbitmq.list << EOF
deb http://www.rabbitmq.com/debian/ testing main
EOF
更新APT包列表以包含RabbitMQ仓库:
sudo apt-get update
安装RabbitMQ服务器:
sudo apt-get install rabbitmq-server
启动RabbitMQ服务:
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
设置Erlang Cookie: 确保所有节点的Erlang Cookie一致。首先在一个节点上找到Cookie文件:
cat /var/lib/rabbitmq/.erlang.cookie
将该文件复制到其他节点,并确保权限正确:
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
加入集群: 在每个节点上执行以下命令,将它们加入同一个集群:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@<node_hostname>
sudo rabbitmqctl start_app
例如,如果节点1的hostname是mq1
:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@mq1
sudo rabbitmqctl start_app
对节点2和节点3重复相同的步骤。
验证集群状态: 在任意节点上执行以下命令查看集群状态:
sudo rabbitmqctl cluster_status
为了提高可用性,可以将队列设置为镜像队列:
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
这将对所有队列启用镜像,确保队列的所有副本都自动同步。
如果需要Web管理界面,可以启用Management Plugin:
sudo rabbitmq-plugins enable rabbitmq_management
然后可以通过浏览器访问http://<your_server_ip>:15672
进行管理。