【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程
🧑💻作者名称:DaenCode
🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:图解RabbitMQ

专栏推荐
- 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。
链接>>>>>>>>>《Redis从头学》 - SpringBoot实战相关专栏,包含SpringBoot过滤器、拦截器、AOP实现日志、整合Freemaker、整合Redis等等实战相关内容,多篇文章登入全站热榜、领域热榜、被技术社区收录。
链接>>>>>>《SpringBoot实战》
文章目录
- 专栏推荐
- 🌟前言
- 🌟RabbitMQ是什么?
- 🌟特点
- 🌟核心组件
- 🌟核心流程
- 🌟写在最后
🌟前言
在上一节中学习了JMS消息服务与AMQP协议。了解了这两大消息传递技术,这一节就学习基于AMQP协议实现的RabbitMQ消息中间件是什么?RabbitMQ的架构图是怎样的?以及RabbitMQ中的核心组件。
🌟RabbitMQ是什么?
以下解释来源于百度百科:
RabbitMQ是实现了
高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
个人理解:
基于AMQP协议实现的消息中间件,采用Erlang语言编写。
架构图:

🌟特点
- 跨平台、多语言支持。基于AMQP协议实现。
- 支持分布式。
- 可以与SpringAMQP进行整合。
- 易于管理。提供了web管理页面用来监控和管理消息队列。
- 消息可靠性。RabbitMQ内部有消息可靠性投递机制,避免消息中途的丢失。
🌟核心组件
对于核心组件的位置,可以参照架构图。

- Broker:相当于一个MQ节点。
- Producer:生产者。创建消息并发送到Broker中。
- Consumer:消费者。监听Queue中的消息并消费。
- Message:消息。数据对象,有消息头和消息体。
- Queue:消息的载体。负责存储消息。
- Channel:信道。支持多路复用,建立在生产者与broker、broker与消费者之间的虚拟连接。
- Connection:一个连接上可以有多个Channel。
- Exchange:交换机。生产者将消息发送给交换机,交换机负责使用binding_key绑定交换机与队列。
- RoutingKey:路由键。消息的路由规则。
- Binding:通过routingkey与bingding_key的规则,绑定交换机与队列。
- Virtual Host:虚拟主机。虚拟的电脑,用来分离不同的业务逻辑模块或者环境。
🌟核心流程
- Producer创建消息并发送到Broker。
- Producer与Broker建立连接Connection。
- 在Connection中创建信道Channel。
- Producer声明一个交换机Exchange,用于接受消息Message并将它们路由到正确的Queue。
- Producer选择一个RoutingKey,用于指定Exchange与哪个Queue进行绑定。
- Producer发送消息到Exchange。
- 关闭Channel。
- 关闭Connection。
- Broker中的Exchange接收到消息后,根据RoutingKey规则路由到正确的Queue。
- Exchange与Queue通过Bingding绑定。
- Queue按照先进先出存储消息和处理消息。
- 消费者从队列中消费消息Message。
- Consumer与Broker建立连接Connection。
- 在Connection创建信道Channel。
- Consumer通过ACK机制确认并消费消息。
- Queue中删除被消费的消息。
- 关闭Channel。
- 关闭Connection。
🌟写在最后
有关于消息队列RabbitMQ基本介绍到此就结束了。在本文中对RabbitMQ的基本概念做出了介绍,并配合架构图对其核心组件进行了总结。
非常感谢大家的阅读,对于学习过程中遇到的问题,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。

相关文章:
【图解RabbitMQ-3】消息队列RabbitMQ介绍及核心流程
🧑💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…...
jmeter源码二次开发
本文以jmeter5.5为例,扩展“TCP Socket支持定长的返回字节流”功能。 一、 源码本地编译运行 1、在jmeter官网下载源码:jmeter各版本源码地址 2、在idea中用gradle导入jmeter源码,idea中要配置jdk,gradle,我用的是j…...
深入实现 MyBatis 底层机制的任务阶段4 - 开发 Mapper 接口和 Mapper.xml
😀前言 在我们的自定义 MyBatis 底层机制实现过程中,我们已经深入研究了多个任务阶段,包括配置文件的读取、数据库连接的建立、执行器的编写,以及 SqlSession 的封装。每个任务阶段都为我们揭示了 MyBatis 内部工作原理的一部分&a…...
分享一下在微信上有哪些微信活动可以做
微信营销活动是吸引更多用户和提高品牌知名度的有效策略。下面是一些微信营销活动的做法: 抽奖活动:通过设置奖品和参与条件,吸引用户参与抽奖活动。例如,可以设置关注公众号、转发活动页面等条件,吸引更多用户参与抽奖…...
视频监控/视频汇聚/视频云存储EasyCVR平台接入国标GB协议后出现断流情况,该如何解决?
视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。安防监控平台EasyCVR既具备传统安防视频监控的能…...
没有软件怎么管理固定资产
在当今数字化的世界中,我们已经习惯了使用各种软件来管理我们的日常生活和工作。然而,当我们面临一个看似简单的问题——如何管理固定资产时,我们可能会感到困惑。那么,如果没有软件,我们该如何进行资产管理呢…...
几种反序列化漏洞
1.PHP魔术方法 <?php class c {private $name hacker;function __construct() { // 构造方法,new时调用echo construct<br>;}function __serialize() { // 序列化时调用echo serialize<br>;return [hack];}function __unserialize($data) { // 反…...
华为OD机试 - 找出符合要求的字符串子串(Java 2023 B卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》…...
深度学习环境搭建笔记(二):mmdetection-CPU安装和训练
文章目录 第一步:安装anaconda第二步:安装虚拟环境第三步:安装torch和torchvision第四步: 安装mmcv-full第五步: 安装mmdetection第六步:测试环境第七步:训练-目标检测7.1 准备数据集7.2 检查数据集7.3 训练网络 第一步…...
Ubuntu18.04安装cuDNN
注册账号 https://developer.nvidia.com/rdp/cudnn-archive 该网站下载安装包需要先进行注册。登录成功后,找到与CUDA对应的版本。 选择Linux版本进行下载。 下载后的格式为.tar.xz 解压 tar xvJf cudnn-linux-x86_64-8.9.3.28_cuda12-archive.tar.xz配置环境 su…...
Java逻辑控制
目录 一、顺序结构 二、分支结构 1、if语句 (1) 语法格式1编辑 (2)语法格式2编辑 (3)语法格式3 2、switch 语句 三、循环结构 1、while循环 2、break 3、continue 4、for 循环 5、do whil…...
easyExcel合并单元格导出
一、导入maven依赖 (很多旧项目自定义了一套Excel导出工具,poi版本可能不兼容,一般poi新旧版本不兼容分界线在3.17,选择3.17版本不会发生代码不兼容情况) <dependency><groupId>com.alibaba</groupId&…...
SpringBoot项目--电脑商城【用户注册】
1.创建数据表 1.1 创建t_user表 CREATE TABLE t_user (uid INT AUTO_INCREMENT COMMENT 用户id,username VARCHAR(20) NOT NULL UNIQUE COMMENT 用户名,password CHAR(32) NOT NULL COMMENT 密码,salt CHAR(36) COMMENT 盐值,phone VARCHAR(20) COMMENT 电话号码,email VARCH…...
HCIP学习-IPv6
目录 前置学习内容 IPv6解决的一些IPv4的缺陷 无限的地址 层次化的地址结构 即插即用 简化报文头部 IPv4和IPv6报头比较 端到端的网络罗完整性 安全性增强 挣钱QoS特性 IPv6地址介绍 格式 首选格式 压缩格式 内嵌IPv4地址格式的IPv6地址格式 IPv6的网络前缀和接…...
golang高精度十进制数扩展包decimal用法
在Go语言中,没有内置的十进制数(decimal)类型或相关的标准库。然而,有一些第三方包可用于处理十进制数,其中比较常用的是decimal包。 decimal包提供了一个big.Float的子类型decimal.Decimal,可以用于表示和…...
STM32F4X RNG随机数发生器
STM32F4X RNG随机数发生器 随机数的作用STM32F4X 随机数发生器RNG控制寄存器RNG状态寄存器RNG数据寄存器RNG数据步骤RNG例程 随机数的作用 随机数顾名思义就是随机产生的数字,这种数字最大的特点就是其不确定性,你不知道它下一次产生的数字是什么。随机…...
5、QT中SQLite数据库的操作
一、QT中的SQLite数据库 1、添加头文件和模块 Header: #include <QSqlDatabase> qmake: QT sql//pro文件添加sql模块执行数据库操作的类: Header: #include <QSqlQuery> qmake: QT sql2、C语言中的SQLite增删减查 SQLite3的基础教程 3、SQLite的…...
git回退到某个提交
git是一个分布式版本控制软件,分布式版本库的做法使源代码的发布和交流都极为方便,因此有不少用户都在使用git。最近小编也正在学习git这款软件,发现要想熟练运用git,学会git中的一些命令是很重要的,如果我们要回滚到某…...
对可再生能源和微电网集成研究的新控制技术和保护算法进行基线和测试及静态、时域和频率分析研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
Full authentication is required to access this resource解决办法
我们在使用postman调接口时候,有的时候需要权限才可以访问,否则可能会报下面这个错误 {"success": false,"message": "Full authentication is required to access this resource","code": 401,"result&q…...
个人自动化技能库构建指南:从Python脚本到Cron定时任务
1. 项目概述:一个为“摸鱼”场景设计的自动化技能库最近在GitHub上看到一个挺有意思的项目,叫my-copaw-skill。光看这个名字,就透着一股子“打工人”的幽默感——“copaw”这个词,我琢磨着应该是“copilot”(副驾驶/助…...
终极指南:如何在Mac上免费备份和导出微信聊天记录
终极指南:如何在Mac上免费备份和导出微信聊天记录 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而懊恼?或是需要…...
技术解构:逆向工程视角下的百度网盘下载链接解析机制
技术解构:逆向工程视角下的百度网盘下载链接解析机制 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 想象一下,当你收到朋友分享的百度网盘链接时&…...
Python数据聚合抓取工具:从配置化引擎到实战避坑指南
1. 项目概述:一个多功能的“聚合爪”工具最近在GitHub上闲逛,发现了一个名字挺有意思的项目:al1enjesus/polyclawster。这个名字拆开看,“poly”代表多,“clawster”听起来像是“claw”(爪子)和…...
Ash印相渲染失败率骤升47%?紧急预警:V6.2更新后Gamma 2.2→2.4迁移引发的印相断层危机
更多请点击: https://intelliparadigm.com 第一章:Ash印相渲染失败率骤升47%的全局现象与危机定性 近期,全球多个采用 Ash 印相引擎(v3.8.2)的影像处理平台集中报告渲染任务异常终止、输出空白或超时中断。监控数据显…...
CircuitPython与NeoPixel实战:从硬件连接到动态灯光效果
1. 项目概述:用Python点亮你的硬件创意如果你玩过Arduino,可能会觉得C/C的语法和库管理有点门槛;如果你熟悉Python,又觉得它和硬件之间隔着一层纱。那么,当Raspberry Pi Pico这块性价比极高的微控制器,遇上…...
μSR技术中的双量子Rabi振荡优化与应用
1. 实验背景与核心原理 在量子物理和凝聚态物理研究中,μ子自旋共振(μSR)技术是一种独特的探测手段。这项技术利用正μ子(μ)作为微观探针,通过观测其自旋极化行为来研究材料的局部磁环境。当μ子注入样品…...
DDalkkak:逆向解析KakaoTalk数据库,实现聊天记录本地化备份与迁移
1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目,叫aristoapp/DDalkkak。乍一看这个仓库名,可能有点摸不着头脑,但如果你对韩国本土的即时通讯应用KakaoTalk有所了解,或者对数据迁移、备份工具有需求,那这个项…...
FanControl终极指南:如何突破NVIDIA显卡风扇30%限制实现0 RPM静音控制
FanControl终极指南:如何突破NVIDIA显卡风扇30%限制实现0 RPM静音控制 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/Git…...
3步打造专业预印本:arxiv.sty LaTeX排版方案实战指南
3步打造专业预印本:arxiv.sty LaTeX排版方案实战指南 【免费下载链接】arxiv-style A Latex style and template for paper preprints (based on NIPS style) 项目地址: https://gitcode.com/gh_mirrors/ar/arxiv-style 在学术研究领域,预印本排版…...
