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 中存放的消息,之后进行消费。

相关推荐
果子⌂1 小时前
Kafka消息队列
分布式·kafka
roman_日积跬步-终至千里5 小时前
【分布式理论】读确认数与写确认数:分布式一致性的核心概念
分布式
网硕互联的小客服5 小时前
高并发下分布式数据库性能下降的解决方法
数据库·分布式
程序员小刘5 小时前
如何优化HarmonyOS 5的分布式通信性能?
分布式·华为·harmonyos5
蓝宗林15 小时前
Spark 以及 spark streaming 核心原理及实践
大数据·分布式·spark
李明一.15 小时前
Spark 技术与实战学习心得:从入门到实践的深度探索
大数据·分布式·spark
Koma-forever15 小时前
Rabbitmq的五种消息类型介绍,以及集成springboot的使用
spring boot·rabbitmq·java-rabbitmq
计算机毕设定制辅导-无忧学长16 小时前
Kafka 与其他 MQ 的对比分析:RabbitMQ/RocketMQ 选型指南(二)
kafka·rabbitmq·rocketmq
Edingbrugh.南空18 小时前
Kafka性能压测报告撰写
分布式·kafka