ubuntu

RabbitMQ Ubuntu集群如何搭建

小樊
41
2025-10-08 09:53:14
栏目: 智能运维

RabbitMQ Ubuntu集群搭建详细步骤

1. 环境准备

1.1 节点规划

至少准备2台Ubuntu服务器(如ubuntu1ubuntu2),确保每台服务器满足以下条件:

1.2 网络配置

1.3 时间同步

安装chrony并启用时间同步(所有节点执行):

sudo apt update && sudo apt install -y chrony
sudo systemctl enable --now chrony
sudo chronyc sources  # 验证同步状态(显示“^*”表示同步成功)

2. 安装Erlang与RabbitMQ

RabbitMQ依赖Erlang环境,需先安装匹配版本的Erlang(以RabbitMQ 3.12为例,需Erlang/OTP 25+)。

2.1 添加Erlang仓库

wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -
echo "deb https://packages.erlang-solutions.com/ubuntu jammy contrib" | sudo tee /etc/apt/sources.list.d/erlang.list
sudo apt update

2.2 安装Erlang

sudo apt install -y erlang erlang-asn1 erlang-crypto erlang-eldap erlang-inets erlang-os-mon erlang-public-key erlang-ssl erlang-xmerl
erl -version  # 验证安装(显示Erlang版本信息)

2.3 安装RabbitMQ

sudo apt install -y rabbitmq-server
sudo systemctl enable --now rabbitmq-server  # 启动服务并设置开机自启
sudo systemctl status rabbitmq-server  # 验证状态(显示“active (running)”)

3. 配置集群核心参数

3.1 同步Erlang Cookie

Erlang Cookie是节点间认证的关键文件,所有节点的/var/lib/rabbitmq/.erlang.cookie内容必须一致。

3.2 启用管理插件

为方便Web管理,在所有节点执行:

sudo rabbitmq-plugins enable rabbitmq_management

插件启用后,可通过http://<节点IP>:15672访问管理界面(默认账号guest/guest,仅限本地访问)。

4. 创建集群

4.1 主节点初始化

在主节点(如ubuntu1)上确认RabbitMQ服务状态正常:

sudo rabbitmqctl status  # 查看节点状态(显示“running”)

4.2 从节点加入集群

在从节点(如ubuntu2)上执行以下命令:

# 停止RabbitMQ应用(不关闭服务)
sudo rabbitmqctl stop_app
# 重置节点(清除本地集群数据,首次加入无需执行)
sudo rabbitmqctl reset
# 加入主节点集群(将<主节点IP>替换为实际IP)
sudo rabbitmqctl join_cluster rabbit@ubuntu1
# 启动RabbitMQ应用
sudo rabbitmqctl start_app

4.3 验证集群状态

在任意节点执行:

sudo rabbitmqctl cluster_status

输出应显示所有节点(如ubuntu1ubuntu2)均已加入集群,示例:

Cluster status of node rabbit@ubuntu1
[{nodes,[{disc,[rabbit@ubuntu1,rabbit@ubuntu2]}]}]

5. 配置高可用(镜像队列)

默认情况下,RabbitMQ集群仅同步队列元数据(如队列名称、绑定关系),消息存储在节点本地。需配置镜像队列实现消息冗余。

5.1 设置镜像策略

在任意节点执行(将所有队列镜像到所有节点):

sudo rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}' --priority 0 --apply-to queues

5.2 验证镜像配置

创建测试队列并发送消息:

# 在主节点创建队列
sudo rabbitmqadmin declare queue name=test_queue durable=true
# 发送消息
sudo rabbitmqadmin publish exchange=amq.default routing_key=test_queue payload="Hello, RabbitMQ Cluster!"

在从节点查看队列状态:

sudo rabbitmqctl list_queues name durable policy

输出应显示test_queuepolicyha-all,且durabletrue(持久化)。

6. 访问与管理

6.1 管理界面访问

通过浏览器访问http://<节点IP>:15672,使用默认账号guest/guest登录(若需远程访问,需修改/etc/rabbitmq/rabbitmq.conf,添加loopback_users.guest = false并重启服务)。

6.2 节点管理

7. 关键注意事项

通过以上步骤,即可完成RabbitMQ在Ubuntu环境下的集群搭建,实现高可用性与负载均衡。

0
看了该问题的人还看了