RabbitMQ 集群

文章目录
- 前言
- 单机多节点搭建集群
- 创建RabbitMQ节点
- 停止服务并重置
- 将节点加入到集群中
- 查看集群状态
- 宕机
- 结论
前言
RabbitMQ 作为消息中间件,可以与多个生产者和消费者进行绑定,但是如何只有一台 RabbitMQ 服务的话,那么这个 RabbitMQ 就需要处理很多的请求,如果该 RabbitMQ 节点挂掉了之后,那么所有与之相关的操作都无法进行了。我们可以升级 RabbitMQ 的硬件设施,提升 RabbitMQ 的处理能力,但是硬件的升级成本是很高的,比较好的解决方法就是搭建 RabbitMQ 集群。
单机多节点搭建集群
一般的集群是指在多个不同的主机上搭建,为什么我这里选择单机多节点搭建集群呢?说白了就是我没有那个经济实力,我手上没有那么多的云服务器,但是呢,知道了单机多节点的搭建,那么多机集群的搭建也就很简单了,步骤基本上是相同的。
我们先来看看主机上已经存在的 RabbitMQ 服务rabbimqctl status:

可以看到我当前主机上已经存在一个 RabbitMQ 服务,他绑定的端口是 5672、15672和25672,这里绑定的端口的作用是啥就不具体介绍了,要是不知道的可以看看前面的文章。
创建RabbitMQ节点
然后我们搭建的单机多节点就是一主两从的情况,所以我们需要再启动两个 RabbitMQ 节点:
| Node Name | AMQP协议端口号 | Web管理页面端口 |
|---|---|---|
| rabbit2 | 5673 | 15673 |
| rabbit3 | 5674 | 15674 |
RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management
listener [{port,15673}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detachedRABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management
listener [{port,15674}]" RABBITMQ_NODENAME=rabbit3 rabbitmq-server -detached
RABBITMQ_NODE_PORT 指定启动的 RabbitMQ 的端口,RABBITMQ_SERVER_START_ARGS 是 RabbitMQ 的配置选项,rabbitmq_management listener 指定管理页面绑定的端口,RABBITMQ_NODENAME 是节点的名称。
那么如何检查我们新的 RabbitMQ 启动成功了呢?我们可以打开云服务器的 15673和15674端口,然后看看管理页面是否能打开:


这时我们一台主机上就存在三个 RabbitMQ 节点了,接下来我们就将这三个几点加入到一个集群中。
停止服务并重置
在添加集群之前,我们需要停止 RabbitMQ 服务,并对其进行重置:
rabbitmqctl -n rabbit2 stop_app
rabbitmqctl -n rabbit2 resetrabbitmqctl -n rabbit3 stop_app
rabbitmqctl -n rabbit3 reset

将节点加入到集群中
我们将最先启动的 rabbit 节点作为主节点,然后 rabbit2 和 rabbit3 作为从节点:
rabbitmqctl -n rabbit2 join_cluster rabbit@iZ2ze5bzkbeuwwqowjzo27Zrabbitmqctl -n rabbit3 join_cluster rabbit@iZ2ze5bzkbeuwwqowjzo27Z
rabbit@iZ2ze5bzkbeuwwqowjzo27Z 是我们主节点的节点名称,可以通过 rabbitmqctl status 查看节点名称:

我们输入命令的时候可能会出现警告,但是我们现在呢就先不管:

将节点加入到集群之后呢,我们重新启动 rabbit2 和 rabbit3:
rabbitmqctl -n rabbit2 start_apprabbitmqctl -n rabbit3 start_app
查看集群状态
RabbitMQ 节点加入集群之后,我们通过 rabbitmqctl cluster_status -n rabbit 来查看集群的状态:


然后登录到管理页面也是可以查看集群状态的:

宕机
我们分别用 rabbit 和 rabbit2 节点来添加两个队列:


用一个节点添加的队列,然后观察其他节点可以发现在其他的节点中也存在这些创建的队列:

然后我们向队列中发送消息:

然后在其他的节点中也是可以看到这个发送的消息:

然后我们关闭主节点 rabbit rabbitmqctl -n rabbit stop_app:
从其他节点的管理平台可以看到我们的 rabbit 节点是挂掉了。

并且,我们的 testQueue 是由 rabbit 节点创建的,当 rabbit 节点挂掉之后,testQueue 中的消息在其他节点中也不存在了,而不是由 rabbit 节点创建的队列则还存在:

也就是说,由哪个节点创建的队列,队列中的消息只会在这个节点中存在,那么如何解决这个问题呢?这就需要引入我们的 “仲裁队列” 了。
结论
感谢各位朋友们能够看到结尾,找不到工作?某直聘已读不回?不妨看看这里超快回复,助力每一位程序员早日找到理想的工作
相关文章:
RabbitMQ 集群
文章目录 前言单机多节点搭建集群创建RabbitMQ节点停止服务并重置将节点加入到集群中查看集群状态宕机 结论 前言 RabbitMQ 作为消息中间件,可以与多个生产者和消费者进行绑定,但是如何只有一台 RabbitMQ 服务的话,那么这个 RabbitMQ 就需要…...
从零开始:使用 Spring Boot 开发图书管理系统
如何利用是springboot搭建一个简单的图书管理系统,下面让我们一起来看看吧 文章目录 项目结构1. 主类 LibraryApplication.java功能与注意事项: 2. 模型类 Book.java功能与注意事项: 3. 数据仓库接口 BookRepository.java功能与注意事项&…...
速盾:海外服务器使用CDN加速有什么优势?
CDN(Content Delivery Network)是指一种分布式网络架构,将内容分发到全球多个节点服务器上,使用户能够就近获取所需内容。海外服务器使用CDN加速,具有以下几个优势: 提高访问速度:CDN将内容复制…...
(二)手势识别——动作模型训练【代码+数据集+python环境(免安装)+GUI系统】
(二)手势识别——动作模型训练【代码数据集python环境(免安装)GUI系统】 背景意义 随着互联网的普及和机器学习技术的进一步发展,手势识别技术开始使用深度学习等方法进行手势识别,如Convolutional Neural…...
window系统下使用open-webui+ollama部署大模型
前面一篇博文中讲述了window下用ollama+AnythingLLM部署本地知识库,但是个人感觉anythingllm不是很好用,还不如直接用cmd窗口,而且仅能本机使用,如果想部署到服务器上面供其他人访问,完全不可行,但是使用open-webui+ollama或者独立的open-webui救可以实现。 使用open-web…...
一加ACE 3 Pro手机无法连接电脑传输文件问题
先说结论:OnePlus手机无法连接电脑传输数据的原因,大概率是一加数据线的问题。尝试其他手机品牌的数据线(比如华为),再次尝试。 连接电脑方法: 1 打开开发者模式(非必要操作) 进入…...
因果机器学习EconML | 客户细分案例——基于机器学习的异质性处理效果估计
机器学习的最大承诺之一是在众多应用领域中实现决策自动化。在大多数数据驱动的个性化决策场景中出现的一个核心问题是对异质性处理效果的估计:作为处理样本的一组可观察特征的函数,干预对感兴趣结果的影响是什么?例如,这个问题出…...
找到最大“葫芦”组合
文章目录 问题描述解题思路分析1. 数据预处理2. 特殊情况处理3. 普通情况计算4. 结果输出 Java代码实现复杂度分析与优化 在经典德州扑克中,“葫芦”是一种较强的牌型。它由五张牌组成,其中三张牌面值相同,另外两张牌面值也相同。本文将探讨一…...
shell(9)完结
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
【计算机网络】多路转接之select
系统提供select()来实现多路转接 IO 等 拷贝 -> select()只负责等待,可以一次等待多个fd select()本身没有数据拷贝的能力,拷贝要read()/write()来完成 一、select的使用 int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exc…...
数据库-基础理论
文章目录 前言一、ORM框架二、ACID原则三、事务Transaction四、N1问题五、Normalization三范式六、FMEA方法论(Failure Mode and Effects Analysis)七、Profiling和PerformanceSchema查询分析 前言 基础理论 ORM框架、ACID原则、事务Transaction、N1问…...
Linux——1_系统的延迟任务及定时任务
系统的延迟任务及定时任务 在系统中我们的维护工作大多数时在服务器行对闲置时进行 我们需要用延迟任务来解决自动进行的一次性的维护 延迟任务时一次性的,不会重复执行 当延迟任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者 在RHEL9中…...
C++ 矩阵旋转
【问题描述】 编写一个程序,读入一个矩阵,输出该矩阵以第一行第一列数字为中心,顺时针旋转90度后的新矩阵,例如: 输入的矩阵为: 1 2 3 4 5 6 顺时针旋转90度后输出的矩阵为: 4 1 5 2 6 3 【输入…...
Docker学习笔记整理
这周不知道写点啥内容做个分享,但还是秉持学会分享的精神,粗略放一些Docker相关的问题和解答吧,后面有机会再补补再深挖深挖o(>﹏<)o 1. 容器VS虚拟机 虚拟机是一种带环境安装的解决方案(资源完全隔离),有以下缺…...
计算机组成原理期末试题三(含答案)
本科生期末试卷 三 一.选择题(每小题1分,共10分) 1.冯诺依曼机工作的基本方式的特点是______。 A 多指令流单数据流 B 按地址访问并顺序执行指令 C 堆栈操作 D 存贮器按内容选择地址 2.在机器数______中&a…...
django+boostrap实现注册
一、django介绍 Django 是一个高级的 Python 网络框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django 负责处理网站开发中麻烦的部分,因此你可以专注于编写应用程序,而无需重新开发。 它是免费和开源的&#x…...
C++初阶——类和对象(下)
目录 1、再探构造函数——初始化列表 2、类型转换 3、static成员 4、友元 5、内部类 6、匿名对象 7、对象拷贝时编译器的优化(了解) 1、再探构造函数——初始化列表 1. 构造函数初始化除了使用函数体内赋值,还有一种方式——初始化列表, 初始化列…...
趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
随着容器技术的不断成熟,不少企业在开展私有化容器平台建设时,首要考虑的问题就是容器的部署环境——是采用虚拟机还是物理机运行容器?在往期“虚拟化 vs. 裸金属*”系列文章中,我们分别对比了容器部署在虚拟化平台和物理机上的架…...
idea初始化设置
下载idea: https://www.jetbrains.com/idea/ 安装idea 安装插件: Rainbow BracketsLombokMybatisXSonarLintMaven HelperCodeGeeX(国内AI插件可用) 设置idea注释模板: 设置代码注释模板: https://blo…...
LINUX系统编程之——环境变量
目录 环境变量 1、基本概念 2、查看环境变量的方法 三、查看PATH环境变量的內容 1)不带路径也能运行的自己的程序 a、将自己的程序直接添加到PATH指定的路径下 b、将程序所在的路径添加到PATH环境中 四、环境变量与本地变量 1、本地变量创建 2、环境变量创…...
毕业设计 深度学习yolo11空域安全无人机检测识别系统(源码+论文)
文章目录0 前言1 项目运行效果2 课题背景2.1 无人机技术快速发展带来的新机遇与挑战2.2 空域安全管理面临的新形势2.2.1 监管难度大2.2.2 现有技术局限2.3 计算机视觉技术的突破性进展2.3.1 算法性能提升2.3.2 硬件加速支持2.4 项目研究的现实意义2.4.1 安全价值1.4.2 经济价值…...
设计岗位替代风险评估程序,分析岗位可替代性,给出创新能力补强提升方向。
一、实际应用场景描述在数字化转型加速背景下,企业和个人普遍关心以下问题:- HR 在做岗位规划时需要评估 自动化风险- 员工希望了解自己的岗位是否容易被 AI / 脚本替代- 创业者需要判断某类服务是否值得人力长期投入- 学生在做职业规划时需要参考岗位演…...
长期使用Taotoken的账单追溯与成本分析实践分享
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken的账单追溯与成本分析实践分享 在将大模型能力集成到产品或研发流程中时,成本的可观测性与可控性是团…...
高效突破小红书反爬:7个实用User-Agent伪装技巧与实战指南
高效突破小红书反爬:7个实用User-Agent伪装技巧与实战指南 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接…...
【算法分析与设计】第4篇:分治策略的理论框架与经典案例
在计算机科学中,很少有比“分而治之”更自然的解题思路了。面对一个庞杂的问题,先把它切成几个小块,逐个击破,再拼回整体——这种朴素的分割策略,经过严谨的形式化之后,便成了我们所说的分治范式。一个标准…...
独立开发者如何利用 Taotoken 的 Token Plan 降低项目长期成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何利用 Taotoken 的 Token Plan 降低项目长期成本 对于独立开发者而言,项目的长期维护成本是必须精打细算…...
Warcraft Helper终极指南:让经典魔兽争霸3在现代Windows系统重获新生
Warcraft Helper终极指南:让经典魔兽争霸3在现代Windows系统重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Wi…...
FlashMLA:把 KV Cache 压缩到原来的八分之一
标准 MHA 的 KV Cache 是推理显存的第一大户。LLaMA-7B,32 层,每层 32 头,HeadDim128,SeqLen128K——KV Cache 吃 40GB。MLA(Multi-head Latent Attention)用低秩分解把 KV 映射到一个远小于 HeadDim 的潜在…...
AI换脸终极指南:5分钟掌握roop-unleashed完整教程
AI换脸终极指南:5分钟掌握roop-unleashed完整教程 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 想要零基础制作电影级AI换脸视频?…...
从激活困境到一键解放:KMS_VL_ALL_AIO如何重塑你的Windows与Office体验
从激活困境到一键解放:KMS_VL_ALL_AIO如何重塑你的Windows与Office体验 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾为Windows激活问题而烦恼?每次重装系统后…...
