RabbitMQ是否支持多个消费者(不同节点上的一个应用程序)接收相同的消息?

时间:2017-06-30 06:44:27

标签: java rabbitmq rabbitmq-exchange

我试图在几天内搜索我的问题,但没有找到令人满意的解决方案。

所以这是我的情况:

  

我有一个应用程序在不同的节点上运行,例如3. 这3个节点中的每个节点上的每个应用程序都需要使用相同的消息

我怎样才能做到这一点?

以下是我厌倦的一些方法:

  1. 将3个使用者/节点绑定到一个队列。问题是RabbitMQ使用循环策略来确保负载平衡。因此,对于每条消息,只有一个消费者。
      

    可能的解决方案:有没有办法关闭循环策略?

  2. 使用FANOUT交换。问题是我们使用自动部署工具,因此每个节点的配置完全相同,导致3个使用者/节点声明一个相同的队列。结果证明这是上面第一个失败的方法。
  3. 每个应用程序/节点使用某些唯一且随机的队列名称声明不同的队列,并将这些队列绑定到FANOUT交换。问题是当应用程序断开连接并与RabbitMQ重新连接时,它将因随机队列名称而声明一个新队列,并且无法消耗在断开连接时堆积在早期队列上的消息。
  4. 提前感谢您的回复。

0 个答案:

没有答案