【问题标题】:RabbitMQ - only one queue, with multiple consumers receiving different messagesRabbitMQ - 只有一个队列,多个消费者接收不同的消息
【发布时间】:2020-03-17 06:35:37
【问题描述】:

我有一个关于 RabbitMQ 队列的问题。我想在一个队列上发送两种类型的消息。

我知道,我可以创建两个不同的队列,并使用路由键将不同的消息发送到不同的队列。

但我想在一个队列上有两个消费者,并以某种方式将消费者与消息类型绑定。当客户端和核心是发布者和消费者时,它是通过兔子队列驱动的事件。

有可能吗,或者我应该使用不同的队列吗?

Data exchange

【问题讨论】:

  • 如果一个队列有两个消费者,则只有一个消费者收到消息。如果您需要将消息传递给两个消费者,则需要为每个消费者提供单独的队列。
  • 我是这么想的,但还是决定问问。想相信,这是有可能的。谢谢。
  • 这是一个糟糕的主意,但如果你真的不得不使用一个队列,你可以在消费者中进行一些键/检查,以 NACK 消息以便将其放回队列中。同样,除非绝对必要,否则这不是一个好的选择。
  • 聪明的想法,但我并不真正需要一个队列。只是认为它可能比为每个消费者创建队列更有效。感谢您的回答,如何解决我的问题是个好主意,但是效率会降低,所以我决定创建许多队列。

标签: java rabbitmq queue consumer


【解决方案1】:

就像@kendavidson 说的那样,有可能只使用一个队列来交换不同的消息,但这是一个糟糕的主意,因为它效率不高,所以只有在真正需要时才应该使用它。

我发现评论 @Петр Александров 很有用,我为每个消费者创建了单独的队列来解决我的问题,这可能是您正在寻找的东西。

【讨论】:

    最近更新 更多