当前位置:首页 > Ubuntu > 正文

Ubuntu集群消息队列配置(手把手教你搭建高可用RabbitMQ集群)

在现代分布式系统中,Ubuntu集群消息队列配置是实现服务解耦、异步通信和流量削峰的关键技术。本文将详细讲解如何在多台 Ubuntu 服务器上搭建一个高可用的 RabbitMQ 集群,即使你是 Linux 新手,也能轻松上手。

Ubuntu集群消息队列配置(手把手教你搭建高可用RabbitMQ集群) Ubuntu集群消息队列配置  RabbitMQ集群搭建 分布式消息系统 Ubuntu高可用消息队列 第1张

一、准备工作

你需要准备以下环境:

  • 至少 3 台运行 Ubuntu 20.04/22.04 的服务器(建议使用相同版本)
  • 每台服务器有固定 IP 地址(例如:192.168.1.101、192.168.1.102、192.168.1.103)
  • 服务器之间网络互通,防火墙开放 5672、15672、25672、4369 等端口
  • 具备 sudo 权限的用户账户

二、在所有节点安装 Erlang 和 RabbitMQ

RabbitMQ 是用 Erlang 编写的,因此必须先安装 Erlang 运行环境。

1. 添加官方仓库并安装依赖:

sudo apt updatesudo apt install -y curl gnupg apt-transport-httpscurl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/rabbitmq.gpgecho "deb [signed-by=/usr/share/keyrings/rabbitmq.gpg] https://packages.rabbitmq.com/debian/ testing main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

2. 安装 Erlang 和 RabbitMQ Server:

sudo apt updatesudo apt install -y erlang rabbitmq-server

安装完成后,RabbitMQ 会自动启动。你可以通过 systemctl status rabbitmq-server 检查状态。

三、配置主机名与 hosts 文件

为确保节点能互相识别,需统一设置主机名并在每台机器的 /etc/hosts 中添加映射。

在 node1 上执行:

sudo hostnamectl set-hostname rabbit1

在 node2 上执行:

sudo hostnamectl set-hostname rabbit2

在 node3 上执行:

sudo hostnamectl set-hostname rabbit3

然后在所有节点的 /etc/hosts 文件末尾添加:

192.168.1.101 rabbit1192.168.1.102 rabbit2192.168.1.103 rabbit3

四、创建集群

我们以 rabbit1 为主节点,其他节点加入它。

1. 在 rabbit1 上获取 Erlang Cookie(位于 /var/lib/rabbitmq/.erlang.cookie):

sudo cat /var/lib/rabbitmq/.erlang.cookie

2. 将该 Cookie 内容复制到 rabbit2 和 rabbit3 的相同路径,并设置权限:

sudo systemctl stop rabbitmq-server# 手动粘贴 Cookie 内容到 /var/lib/rabbitmq/.erlang.cookiesudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookiesudo chmod 600 /var/lib/rabbitmq/.erlang.cookiesudo systemctl start rabbitmq-server

3. 在 rabbit2 和 rabbit3 上加入集群:

rabbitmqctl stop_apprabbitmqctl join_cluster rabbit@rabbit1rabbitmqctl start_app

注意:这里的 rabbit@rabbit1 中的 rabbit 是默认用户名前缀,不能更改。

五、启用管理插件与验证集群

在任意节点启用 Web 管理界面:

sudo rabbitmq-plugins enable rabbitmq_management

创建管理员用户(可选,默认 guest/guest 仅限 localhost):

sudo rabbitmqctl add_user admin your_secure_passwordsudo rabbitmqctl set_user_tags admin administratorsudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

访问 http://192.168.1.101:15672,使用 admin 账号登录,即可看到包含所有节点的集群状态。这标志着你已成功完成 分布式消息系统 的基础搭建。

六、高可用性增强(镜像队列)

为实现真正的 Ubuntu高可用消息队列,建议设置镜像队列策略:

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

该命令会让所有队列在所有节点上镜像,即使某个节点宕机,消息也不会丢失。

总结

通过本教程,你已经掌握了完整的 Ubuntu集群消息队列配置流程。从环境准备、软件安装到集群组建和高可用设置,每一步都经过精心设计,确保小白也能顺利操作。RabbitMQ 集群不仅能提升系统的可靠性,还能为未来的微服务架构打下坚实基础。

如果你正在构建企业级应用或云原生系统,这套 RabbitMQ集群搭建方案将为你提供稳定、高效的消息传递能力。