RabbitMQ多个使用者订阅相同的队列并获得相同的消息

时间:2020-06-20 02:37:34

标签: rabbitmq

我正在考虑,多个消费者可以从他们订阅的“相同”队列中获得“相同”消息吗?

这意味着消费者_1和消费者_2都订阅队列_1,当发布者发布一条消息时,该消费者中的两个可以同时获得该消息吗?

如果是,我该如何实施?

2 个答案:

答案 0 :(得分:3)

这是不可能的。 一条消息可以一次传递到队列的一个使用者。但是,可以通过一次交换将一条消息路由到多个队列Refer绑定到RabbitMQ提供的不同形式的绑定和exchanges

但是请注意,rabbitmq提供了requeuingnacks的选项。

答案 1 :(得分:0)

不可能。队列中的特定消息不能由多个使用者使用。

请记住,在AMQP中,消息总是从队列中使用。

  1. 队列中的消息仅由一个使用者使用
  2. 您可以让竞争的消费者从队列中分担工作负担

非常高水平的AMQP流量

  1. 生产者将消息发布到交易所。
  2. 交换接收消息并将其路由到队列。(基于消息属性,交换类型和绑定)
  3. 使用者处理该消息或将其保留在队列中,直到被使用为止。

根据您在步骤2中创建的交换类型和绑定,在AMQP中实现不同的消息交换模式。 无论是点对点发布,发布订阅,多播,它都将基于步骤2中发生的情况。

一篇带有精美图表的精美文章

https://www.cloudamqp.com/blog/2015-09-03-part4-rabbitmq-for-beginners-exchanges-routing-keys-bindings.html#standard-rabbitmq-message-flow

enter image description here

enter image description here

相关问题