在CentOS上部署RabbitMQ集群需要以下几个步骤:
1. 安装Erlang
RabbitMQ是用Erlang编写的,因此首先需要在所有节点上安装Erlang。
sudo yum install -y erlang
2. 安装RabbitMQ
在所有节点上安装RabbitMQ服务器。
sudo yum install -y rabbitmq-server
3. 启动RabbitMQ服务
在所有节点上启动RabbitMQ服务。
sudo systemctl start rabbitmq-server
4. 启用管理插件(可选)
启用RabbitMQ的管理插件,方便通过Web界面管理。
sudo rabbitmq-plugins enable rabbitmq_management
5. 配置Erlang Cookie
RabbitMQ集群中的所有节点必须共享相同的Erlang cookie。默认情况下,cookie文件位于/var/lib/rabbitmq/.erlang.cookie。
获取当前节点的cookie
sudo cat /var/lib/rabbitmq/.erlang.cookie
将cookie复制到其他节点
将获取到的cookie复制到其他节点的相同路径下,并确保权限正确。
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node3:/var/lib/rabbitmq/
在其他节点上设置相同的权限:
sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
6. 配置RabbitMQ集群
在第一个节点上启用集群模式,并加入其他节点。
启用集群模式
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl start_app
加入集群
假设第一个节点的hostname是node1,其他节点的hostname分别是node2和node3。
在node2上:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app
在node3上:
sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app
7. 验证集群状态
在任意一个节点上验证集群状态。
sudo rabbitmqctl cluster_status
你应该能看到所有节点都加入了集群。
8. 配置镜像队列(可选)
为了提高高可用性,可以配置镜像队列。
sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
这条命令会将所有队列设置为镜像队列,并在所有节点上进行复制。
9. 配置防火墙
确保防火墙允许RabbitMQ的默认端口(5672)和SSL端口(5671)。
sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp
sudo firewall-cmd --permanent --zone=public --add-port=5671/tcp
sudo firewall-cmd --reload
10. 测试集群
通过发送和接收消息来测试集群是否正常工作。
# 在node1上发送消息
sudo rabbitmqadmin publish routing_key=test_queue payload="Hello, RabbitMQ!"
# 在node2或node3上接收消息
sudo rabbitmqadmin get queue=test_queue
通过以上步骤,你应该能够在CentOS上成功部署一个RabbitMQ集群。
以上就是关于“如何在CentOS上部署RabbitMQ集群”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm