news 2026/6/25 22:01:07

RabbitMQ 集群部署方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RabbitMQ 集群部署方案
RabbitMQ
  • 一、安装 RabbitMQ

  • 二、更改配置文件

  • 三、配置集群

  • 四、测试

  • 环境准备:三台服务器,系统是 CentOS7

  • IP地址分别是:

    • rabbitmq1:192.168.152.71
    • rabbitmq2:192.168.152.72
    • rabbitmq3:192.168.152.73

一、安装 RabbitMQ

记得配置yum源,避免不必要的错误

在三台服务器上分别安装 erlang 和 rabbitmq-server

  1. 安装 RabbitMQ 运行环境

    yum install -y erlang
  2. 安装软件 RabbitMQ

    yum install -y rabbitmq-server

二、更改配置文件

一下配置在三台服务器上都要修改

  1. 更改 RabbitMQ 配置文件

    vim /etc/rabbitmq/rabbitmq.config

    找到%%{loopback_users, []},改为下面内容,大概在 53 行

    {loopback_users, []}
  2. 更改 hosts 配置主机名解析

    192.168.152.71 rabbitmq1 192.168.152.72 rabbitmq2 192.168.152.73 rabbitmq3

    可以 ping 一下看是否配置成功

三、配置集群

  1. 改主机名,对照 hosts 配置的主机名解析,把对用服务器的主机名改为相应的解析
    如:192.168.152.71

    hostnamectl set-hostname rabbitmq1

    192.168.152.72

    hostnamectl set-hostname rabbitmq2

    192.168.152.73

    hostnamectl set-hostname rabbitmq3

    然后全部都exit重新登录

  2. 启动三台服务器的 RabbitMQ 服务

    systemctl start rabbitmq-server systemctl enable rabbitmq-server
  3. 统一三台服务器的 erlang.cookie,把 rabbitmq1 的 erlang.cookie 传输到其它两台

    scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie
  4. 运行cat /var/lib/rabbitmq/.erlang.cookie,查看三台服务器的值是否一致,一致后再重启 rabbitmq2 和 rabbitmq3 的 RabbitMQ 服务

    systemctl restart rabbitmq-server
  5. 查看 RabbitMQ 的节点状态

    rabbitmqctl cluster_status

    结果如下即为正确

    # rabbitmq1 的结果: Cluster status of node rabbit@rabbitmq1 ... [{nodes,[{disc,[rabbit@rabbitmq1]}]}, {running_nodes,[rabbit@rabbitmq1]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}] ...done. # rabbitmq2 的结果: Cluster status of node rabbit@rabbitmq2 ... [{nodes,[{disc,[rabbit@rabbitmq2]}]}, {running_nodes,[rabbit@rabbitmq2]}, {cluster_name,<<"rabbit@rabbitmq2">>}, {partitions,[]}] ...done. # rabbitmq3 的结果: Cluster status of node rabbit@rabbitmq3 ... [{nodes,[{disc,[rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq3]}, {cluster_name,<<"rabbit@rabbitmq3">>}, {partitions,[]}] ...done.
  6. 停止 rabbitmq2 和 rabbitmq3 主机的 RabbitMQ 应用

    rabbitmqctl stop_app
  7. 让 rabbitmq2 和 rabbitmq3 加入 rabbitmq1 的集群

    rabbitmqctl join_cluster rabbit@rabbitmq1
  8. 启动 rabbitmq2 和 rabbitmq3 主机的 RabbitMQ 应用,并再次查看 RabbitMQ 的节点状态

    rabbitmqctl start_app

    再三台服务器上执行rabbitmqctl cluster_status命令,结果就会变为下面这样

    # rabbitmq1 的结果: Cluster status of node rabbit@rabbitmq1 ... [{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq2,rabbit@rabbitmq3,rabbit@rabbitmq1]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}] ...done. # rabbitmq2 的结果: Cluster status of node rabbit@rabbitmq2 ... [{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq1,rabbit@rabbitmq3,rabbit@rabbitmq2]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}] ...done. # rabbitmq3 的结果: Cluster status of node rabbit@rabbitmq3 ... [{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq2,rabbit@rabbitmq1,rabbit@rabbitmq3]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}] ...done.

    此时集群配置成功

四、测试

可以可以启用 RabbitMQ 可视化web管理插件,更直观的看到集群状态,也方便测试
三台服务器都要开启

rabbitmq-plugins enable rabbitmq_management systemctl restart rabbitmq-server

通过IP地址加端口号访问,端口号为 15672
如:192.168.152.71:15672,默认的用户名:guest,密码:guest

可以再其中一台添加用户,看其它几台是否有变化,有则配置成功

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 2:54:44

Java Web 教学资源库系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 随着信息技术的快速发展&#xff0c;教育领域对数字化教学资源的需求日益增长。传统的教学资源管理方式存在资源分散、检索效率低、共享困难等问题…

作者头像 李华
网站建设 2026/6/25 13:23:46

JLink仿真器使用教程:超详细版烧录步骤解析

JLink仿真器实战指南&#xff1a;从零开始掌握高速烧录与深度调试你有没有遇到过这样的场景&#xff1f;项目临近交付&#xff0c;固件反复出问题&#xff0c;但串口打印日志慢得像“挤牙膏”&#xff0c;断点调试根本用不了。想改个参数还得重新编译、下载、重启——一天下来只…

作者头像 李华
网站建设 2026/6/14 7:37:51

Keil5开发环境搭建:手把手教程(从零配置)

Keil5开发环境搭建&#xff1a;从零开始的实战指南你有没有过这样的经历&#xff1f;买了一块崭新的STM32开发板&#xff0c;兴致勃勃地打开电脑准备“点灯”&#xff0c;结果卡在第一步——Keil打不开、编译报错一堆、下载程序失败……最后只能对着闪烁的ST-Link指示灯发呆。别…

作者头像 李华
网站建设 2026/6/25 10:19:36

当储能系统遇上代码:聊聊那些藏在电池里的“平衡术

储能逆变器&#xff0c;储能系统&#xff0c;soc均衡控制&#xff0c;soc均衡&#xff0c;蓄电池充放电控制&#xff0c;电动汽车充电桩控制&#xff0c;充电桩模拟 根据您提供的一段话&#xff0c;我重新表述如下&#xff1a;"储能逆变器是一种用于储能系统的设备&#x…

作者头像 李华
网站建设 2026/6/23 14:35:48

零基础学习Proteus元器件库大全与原理图绘制流程

从零开始掌握Proteus&#xff1a;元器件库怎么用&#xff1f;原理图如何画&#xff1f;你是不是也遇到过这种情况——刚打开Proteus&#xff0c;想做个简单的LED闪烁电路&#xff0c;结果在“Pick Device”窗口里翻来覆去找不到AT89C51&#xff1f;或者好不容易把元件放好了&am…

作者头像 李华
网站建设 2026/6/25 21:45:20

RISC架构下实时操作系统移植:项目应用

RISC架构下实时操作系统移植&#xff1a;从原理到实战的深度实践在工业自动化、智能驾驶和边缘计算飞速发展的今天&#xff0c;嵌入式系统早已不再是“跑个循环”的简单设备。越来越多的应用要求毫秒级响应、任务间精确协同、资源高效调度——这些正是实时操作系统&#xff08;…

作者头像 李华