队列中有8个消费者,其中任何一个都可以接收消息,一旦处理完毕,就会影响数据库。大多数消息都可以异步运行,但是在一些消息上,我们需要停止消耗队列,直到消息被其中一个消费者完全处理完毕。在此期间,其他7位消费者不应该从队列中消费。
无论如何在rabbitmq中实现这一点而不是做一个应用程序级解决方案(可能很难实现)?
答案 0 :(得分:0)
我不知道严格的RabbitMQ改变是否有效。但是,除了重命名生产者正在丢弃消息的队列之外,这里的方法不需要修改任何旧代码。它需要写一个新的消费者:
由于单个消费者只是转发异步消息,因此它可以快速完成,并且吞吐量不应该存在问题。