在现代分布式系统中,消息队列扮演着至关重要的角色。它能够解耦服务、削峰填谷、提升系统可靠性。本文将手把手教你如何在 CentOS 集群 上搭建一个高可用的 RabbitMQ 消息队列 系统,即使你是 Linux 新手也能轻松上手。
你需要准备至少两台运行 CentOS 7 或 CentOS 8 的服务器(建议使用 CentOS 7,兼容性更好),并确保它们之间网络互通。以下操作以 root 用户执行,或使用 sudo 提权。
RabbitMQ 是用 Erlang 编写的,因此首先需要安装 Erlang 运行环境。
# 添加 Erlang 官方仓库yum install -y https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.11/erlang-23.3.4.11-1.el7.x86_64.rpm# 添加 RabbitMQ 官方仓库curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash# 安装 RabbitMQ Serveryum install -y rabbitmq-server# 启动服务systemctl start rabbitmq-server# 设置开机自启systemctl enable rabbitmq-serverRabbitMQ 提供了 Web 管理界面,方便监控和操作。
rabbitmq-plugins enable rabbitmq_management默认情况下,Web 管理界面监听 15672 端口。你可以通过浏览器访问 http://你的服务器IP:15672。初始用户名和密码都是 guest(仅限本地登录)。

假设你有三台服务器:node1 (192.168.1.10)、node2 (192.168.1.11)、node3 (192.168.1.12)。
# 在 node1 上执行(假设已生成 cookie)cat /var/lib/rabbitmq/.erlang.cookie# 将该 cookie 内容复制到 node2 和 node3 的相同路径,并设置权限chmod 600 /var/lib/rabbitmq/.erlang.cookiechown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie systemctl stop rabbitmq-server # 在 node2 上执行rabbitmq-server -detachedrabbitmqctl stop_apprabbitmqctl join_cluster rabbit@node1rabbitmqctl start_app# 在 node3 上执行(同理)rabbitmq-server -detachedrabbitmqctl stop_apprabbitmqctl join_cluster rabbit@node1rabbitmqctl start_app 在任意节点执行以下命令:
rabbitmqctl cluster_status如果看到所有节点都在 nodes 列表中,说明 CentOS 集群 中的 RabbitMQ 已成功组成集群。
确保以下端口开放(使用 firewalld):
firewall-cmd --permanent --add-port=5672/tcpfirewall-cmd --permanent --add-port=15672/tcpfirewall-cmd --permanent --add-port=25672/tcpfirewall-cmd --permanent --add-port=4369/tcpfirewall-cmd --reload通过本教程,你已经成功在 CentOS 集群 上部署了一个高可用的 消息队列 系统。RabbitMQ 的集群模式提供了故障转移和负载均衡能力,是构建健壮微服务架构的关键组件。后续你可以根据业务需求配置镜像队列、用户权限、虚拟主机等高级功能。
记住,一个稳定可靠的 高可用消息系统 是保障业务连续性的基石。希望这篇教程能帮助你迈出分布式系统建设的第一步!
本文由主机测评网于2025-12-03发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122547.html