【发布时间】:2014-02-10 14:29:06
【问题描述】:
我在一个队列中有 8 个消费者,他们中的任何一个都可以接收消息,一旦处理,这会影响数据库。大多数消息可以异步运行,但在少数消息上,我们需要停止队列消费,直到该消息被其中一位消费者完全处理。在此期间,其他 7 个消费者不应该从队列中消费。
有没有办法在rabbitmq中实现这个而不是做一个应用程序级的解决方案(这可能很难实现)?
【问题讨论】:
-
收到同步消息后,是需要停止处理所有消息,还是直接串行处理所有同步消息?
-
@lreeder 当同步(阻塞)消息进来时,我们需要停止获取它之后的所有消息(因为它们必须在假设阻塞消息对 db/ 进行更改的情况下进行处理缓存)这对一个消费者来说很容易,但对于 8 个消费者来说,这很容易,如果没有 rabbitmq 的帮助,我们无法控制其他 7 个消费者