RabbitMQ 集群部署方案

embedded/2025/3/1 21:33:06/
RabbitMQ
  • 一、安装 RabbitMQ

  • 二、更改配置文件

  • 三、配置集群

  • 四、测试

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

  • IP地址分别是:

一、安装 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
在这里插入图片描述
可以再其中一台添加用户,看其它几台是否有变化,有则配置成功
在这里插入图片描述


http://www.ppmy.cn/embedded/169153.html

相关文章

三个小时学完vue3(一)

Vue3 之前就学过一些&#xff0c;不过用的比较少&#xff0c;基本忘完了/(ㄒoㄒ)/~~ 跟着B站视频迅速回忆一下 创建一个Vue 3 应用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&…

【PyCharm安装】【Python安装】【PyCharm使用】全流程

2025 - 02 - 28 - 第 64 篇 Author: 郑龙浩 / 仟濹 【PyCharm安装】【Python安装】【PyCharm使用】 文章目录 Python安装PyCharm安装及使用一 Python安装1 **Python 安装包里都包括什么呢&#xff1f;&#xff1f;&#xff1f;**2 安装时的一些选项勾选有何作用&#xff1f;(1…

【愚公系列】《Python网络爬虫从入门到精通》035-DataFrame数据分组统计整理

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

ssh配置 远程控制 远程协作 github本地配置

0.设备版本 windows11 ubuntu24.0.4 1.1 在 Linux 上启用 SSH 服务 首先&#xff0c;确保 Linux 计算机上安装并启用了 SSH 服务。 安装和启动 OpenSSH 服务&#xff08;如果未安装&#xff09; # 在终端安装 OpenSSH 服务&#xff08;如果尚未安装&#xff09; sudo apt …

行为型模式 - 状态模式 (State Pattern)

行为型模式 - 状态模式 (State Pattern) 状态模式是一种行为设计模式&#xff0c;它允许对象在其内部状态改变时改变它的行为&#xff0c;对象看起来似乎修改了它的类。下面为你介绍几个状态模式的经典案例。 // 抽象状态类 abstract class LiftState {protected Lift lift;pu…

Brave 132 编译指南 Android 篇 - 初始化构建环境 (六)

1. 引言 在成功配置好 Python、Node.js 等基础开发环境并切换到正确的 Brave 版本分支之后&#xff0c;我们来到了编译前的最后一个关键环节&#xff1a;初始化 Brave 浏览器的构建环境。这个过程就好比为一场盛大的演出搭建舞台、调试灯光音响&#xff0c;确保所有必要的组件…

HTTP~文件 MIME 类型

MIME&#xff08;Multipurpose Internet Mail Extensions&#xff09;类型&#xff0c;即多用途互联网邮件扩展类型&#xff0c;是一种标准&#xff0c;用来表示文档、文件或字节流的性质和格式。最初是为了在电子邮件系统中支持非 ASCII 字符文本、二进制文件附件等而设计的&a…

抖音生活服务加强探店内容治理,2024年达人违规率下降30%

发布 | 大力财经 2月27日&#xff0c;抖音生活服务发布《2024抖音生活服务消费者权益保护年度报告》&#xff08;以下简称“报告”&#xff09;。报告显示&#xff0c;过去一年&#xff0c;抖音生活服务针对消费者反感的虚假、夸张探店内容&#xff0c;开展了专项治理。通过一…