在CentOS上实现RabbitMQ的高可用性,通常是通过搭建RabbitMQ集群来实现的。以下是详细的步骤:
首先,在所有节点上安装Erlang和RabbitMQ。可以使用官方提供的安装包进行安装。
# 安装Erlang
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
# 安装RabbitMQ
sudo yum install rabbitmq-server
RabbitMQ集群中的节点通过Erlang Cookie进行认证。确保所有节点的Erlang Cookie相同。
# 在任意节点上找到Erlang Cookie
cat /var/lib/rabbitmq/.erlang.cookie
# 将Cookie复制到其他节点
scp /var/lib/rabbitmq/.erlang.cookie user@other_node:/var/lib/rabbitmq/
确保所有节点的主机名可以相互解析。
# 修改主机名
hostnamectl set-hostname rabbit@node1
hostnamectl set-hostname rabbit@node2
hostnamectl set-hostname rabbit@node3
在所有节点上启动RabbitMQ服务。
# 启动RabbitMQ服务
sudo systemctl start rabbitmq-server
选择一个节点作为主节点(通常配置为磁盘节点),然后将其他节点加入到集群中。
# 在主节点上停止RabbitMQ服务
sudo rabbitmqctl stop_app
# 将其他节点加入到主节点
sudo rabbitmqctl reset
sudo rabbitmqctl join_cluster rabbit@node1
# 启动RabbitMQ服务
sudo rabbitmqctl start_app
使用以下命令查看集群状态。
# 查看集群状态
sudo rabbitmqctl cluster_status
为了进一步提高可用性,可以将队列配置为镜像队列。
# 设置队列镜像策略
sudo rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}'
确保防火墙允许RabbitMQ使用的端口(默认是5672)。
# 打开端口
sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --reload
启用RabbitMQ管理插件以便通过Web界面管理集群。
# 启用管理插件
sudo rabbitmq-plugins enable rabbitmq_management
[1] 一文带你吃透 RabbitMQ 的高可用架构 [2] 高可用RabbitMQ集群的搭建及原理分析 [3] RabbitMQ 集群高可用部署详细介绍 [4] centos9 stream 下rabbitmq高可用集群搭建及使用 [5] CentOS下RabbitMq高可用集群环境搭建 [6] CentOS7实现RabbitMQ高可用集群 [7] centos7 rabbitmq集群搭建高可用 [8] CentOS下RabbitMQ集群安装配置教程 [9] Centos6.9下RabbitMQ集群部署记录 [10] 在centos中安装rabbitmq服务 [11] centos安装rabbitmq_手工部署RabbitMQ(CentOS 7.4 - 酷盾) [12] RabbitMQ在CentOS中的安装和配置教程[@ref]
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>