【RabbitMQ】队列类型

Rabbitmq队列类型

  1. 基本消息模型:生产者 –> 队列 –> 一个消费者

    一个队列对应一个消费者

  2. work消息模型:生产者 –> 队列 –> 多个消费者共同消费

    一个队列对应多个消费者

  3. 交换机-订阅模型-Fanout:广播,将消息交给所有绑定到交换机的队列,每个消费者都可以收到同一条消息

    直连型交换机,根据消息携带的路由键将消息投递给对应队列。

    大致流程,有一个队列绑定到一个直连交换机上,同时赋予一个路由键 routing key 。

    然后当一个消息携带着路由值为X,这个消息通过生产者发送给交换机时,交换机就会根据这个路由值X去寻找绑定值也是X的队列。

  4. 交换机-订阅模型-Direct:定向,把消息交给符合指定 rotingKey 的队列(路由模式)

    扇型交换机,这个交换机没有路由键概念,就算你绑了路由键也是无视的。 这个交换机在接收到消息后,会直接转发到绑定到它上面的所有队列。

  5. 交换机-订阅模型-Topic:通配符,把消息交给符合routing pattern(主题模式)的队列

    主题交换机,这个交换机其实跟直连交换机流程差不多,但是它的特点就是在它的路由键和绑定键之间是有规则的。 简单地介绍下规则:

    • *(星号) 用来表示一个单词 (必须出现的)
    • #(井号) 用来表示任意数量(零个或多个)单词

    通配的绑定键是跟队列进行绑定的,举个小例子:

    队列Q1 绑定键为 *.TT.* 队列Q2绑定键为 TT.#

    如果一条消息携带的路由键为 A.TT.B,那么队列Q1将会收到;

    如果一条消息携带的路由键为 TT.AA.BB,那么队列Q2将会收到;

  6. RPC模式

3、4、5这三种都属于交换机-订阅模型,只不过进行路由的方式不同。
还有Header Exchange 头交换机 ,Default Exchange 默认交换机,Dead Letter Exchange 死信交换机

参考文献:

SpringBoot整合RabbitMQ的五种模式示例

Springboot 整合RabbitMQ

RabbitMQ Spring-Boot 整合 使用教程 可靠性投递 顺序消费 高可用方案 事务消息 幂等性 SET化架构 等等

Rabbit ACK 机制流程图


【RabbitMQ】队列类型
https://happyloves.cn/20220831/6d2e179d9f56.html
作者
赵小胖
发布于
2022年8月31日
许可协议