RabbitMQ 消息模型

RabbitMq有3种常用的消息模型,其中订阅模式又分成3类

1.基本消息模型:生产者将消息发送到队列,消费者从队列中获取消息,队列是存储消息的缓冲区

2.Work Queues工作模型:一个生产发送消息到队列,允许有多个消费者接收消息,但是一条消息只会被一个消费者获取。

3.订阅模式(包含3种):生产者不是直接发送消息到队列,而是先发送给交换机,经由交换机分配到不同的队列,而每个消费者都有自己的队列

  1、1个生产者,多个消费者

  2、每一个消费者都有自己的一个队列

  3、生产者没有将消息直接发送到队列,而是发送到了交换机

  4、每个队列都要绑定到交换机

  5、生产者发送的消息,经过交换机到达队列,实现一个消息被多个消费者获取的目的

订阅模式之fanout(广播)

  1. 可以有多个消费者,每个消费者都有自己的队列
  2. 每个队列都要与exchange绑定
  3. 生产者发送消息到exchange
  4. exchange将消息把消息发送到所有绑定的队列中去
  5. 消费者从各自的队列中获取消息

订阅模式之direct

  在路由模式(Direct)中,可以实现不同的消息被不同的队列消费,在Direct模式下,交换机不再将消息发送给所有绑定的队列,而是根据Routing Key将消息发送到指定的队列,队列在与交换机绑定时会设定一个Routing Key,而生产者发送的消息时也需要携带一个Routing Key。

订阅模式之Topics

  Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符

小人才疏学浅,看官不喜勿喷,谢谢
原文地址:https://www.cnblogs.com/feiqilai/p/15739636.html