当前位置: 首页 > news >正文

RabbitMQ 的工作流程

RabbitMQ 是一个消息中间件,实现了生产者消费者模型,可以用来接收、存储、转发消息。

专有名词介绍

要了解 RabbitMQ 的工作流程,我们需要先了解下面几个关键词: 

1、Producer

生产者,即向 RabbitMQ 发送消息。

2、Consumer

消费者,即接收 RabbitMQ 中的消息。

3、Broker

可以看作是 RabbitMQ 的服务器,用来接收、发送消息。

4、Connection

连接,是 Producer、Consumer 与 Broker 建立 的 TCP 连接,这个连接是建立消息传递的基础。

5、Channel

信道,是 Connection 的抽象,一个 Connection 可以有多个 Channel,消息的接收、发送都是基于 Channel。

使用 Channel 可以将多个消息的发送与接收集中到一个 TCP 连接上,可以减少连接的建立与关闭,节约了网络资源。

6、Queue

队列,用来存储消息;

一个 Queue 可以被多个消费者订阅,一个消费者也可以订阅多个 Queue。

7、Exchange

交换机,当消息到达 RabbitMQ 时,经过对应的交换机,将消息存储到对应的 Queue 中;

一个交换机可以对应多个 Queue。

8、Virtual host

虚拟主机,为消息队列提供了逻辑上的隔离机制;

一个 BrokerServer 中可以有多个 Virtual host,当多个用户使用一个 RabbitMQ 时,会划分出多个虚拟主机,每个用户在自己的虚拟主机中创建对应的 Exchange 和 Queue。

RabbitMQ 的工作流程

1、Producer 在与 RabbitMQ Broker 建立 TCP 连接之后,会开启一个 Channel;

2、Producer 将消息通过 Channel 发送给 RabbitMQ Broker;

3、Broker 接收到消息之后,就会根据 Producer 将消息通过其对应的 Exchange 存放至 Queue;

4、若没有对应的 Queue,就会依据 Producer 的配置,将消息传发给 Producer 或 丢弃;

5、Consumer 与 RabbitMQ 建立连接之后,就可以获取对应的 Queue 中存放的消息,之后进行消费。

相关文章:

  • Android NDK下载链接及配置版本
  • 微服务架构的适用
  • 深入浅出JavaScript 中的代理模式:用 Proxy 掌控对象的“行为开关”
  • CTF--PhP Web解题(走入CTF)
  • [C++] STL数据结构小结
  • access和excel用vba进行辅助办公软件开发
  • c++26新功能—hive容器
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 03(题目+回答)
  • WebeServer实现:学到了哪些东西
  • STM32F103_LL库+寄存器学习笔记12.3 - 串口DMA高效收发实战3:支持多实例化的版本
  • 如何在MacOS系统和Windows系统安装节点小宝远程工具
  • Java-52 深入浅出 Tomcat SSL工作原理 性能优化 参数配置 JVM优化
  • 爬虫获取数据:selenium的应用
  • Docker简单介绍与使用以及下载对应镜像(项目前置)
  • CVE-2024-6387漏洞、CVE-2025-26465漏洞、CVE-2025-26466漏洞 一口气全解决
  • 【JS-4.3-鼠标常用事件】深入理解DOM鼠标事件:全面指南与最佳实践
  • FPGA四十年创新:因仿真加速而生,AI加速而盛!
  • 股票账户的管理和交易
  • 车载电子电器架构 --- 法律和标准对电子电气架构的影响
  • Mac电脑-Markdown编辑器-Typora
  • html写一个简单购物页面/石家庄seo优化公司
  • 大一网站开发项目答辩/百度网站推广电话
  • 新网站优化怎么做/怎么建立自己的网站平台
  • 做高端品牌网站/网络营销的方法有哪些
  • 企业网站建设感想/推动高质量发展
  • 昆明装修公司/seo优化排名服务