【问题标题】:many consumers to manu queues. One consumer to multiple queues in the RabbitMQ许多消费者手动排队。 RabbitMQ 中的一个消费者到多个队列
【发布时间】:2020-01-15 19:26:55
【问题描述】:

下午好!

实现下一个的最佳方法是什么:

我发布有关员工的消息。我希望消费者处理有关几名员工的消息。例如 - 我发送有关员工 1、2、3、4、5 的消息。我想用下一种方式处理消息: 消费者 1 - 接收关于员工 1、3、5 的消息;消费者 2 - 接收有关员工 2、4、5 的消息

如果我为每个员工创建一个特定队列,我如何为消费者订阅一个以上的队列? 我可以使用不同的路由键 (EmployeeID) 在一个队列中发送消息。以这种方式 - 我如何通过多个路由键为不同的消费者过滤此队列中的消息?

【问题讨论】:

  • 您选择处理哪些消息的逻辑不清楚,例如消息 5 发送给两个消费者。这些路由规则是在哪里声明的?
  • 逻辑清晰。我希望第一个消费者收到关于员工 1、3、5 的消息;第二个消费者- 关于员工2,4,5。并为此寻找最佳解决方案
  • 我正在尝试找到一种方法来实现这一点。我将创建两个队列——一个用于员工 1、3、5,第二个用于员工 2、4、5。但是在这种情况下要设置什么作为队列标识符或路由键。毕竟我事先不知道如何轮流分组工人
  • 我认为第二种方式 - 将有关所有员工的消息发送到一个队列中,其中路由键是员工 ID。但是如何通过多个路由键过滤这个队列呢?
  • 第三种方式——为每个员工创建一个单独的队列。但是我怎样才能订阅一个消费者来处理多个队列呢?最后,我不知道消费者会订阅什么样的员工。

标签: rabbitmq


【解决方案1】:

我找到了解决方案。我使用特定绑定创建了交换和单独的队列

【讨论】: