我对 RabbitMQ 有一个有点独特的用例,但我不确定如何解决这个问题。我希望有一个绑定了多个消费者的队列,然后让 RabbitMQ 一次仅向一个消费者发送一条消息,并在向任何其他消费者发送另一条消息之前等待 ACK。
我意识到这会扼杀吞吐量,并且基本上会使其他消费者挨饿,但对我来说没关系。这个奇怪用例的原因是消费者与之交谈的服务一次只能处理一个并发请求,所以我需要一种方法来限制这一点,但消费者也可能意外死亡,我需要另一个消费者来接手处理消息如果发生这种情况。我知道有这个prefetch
选项,但它仍然允许多个用户获得一个独占队列,但我不确定那些能完成我想要的。是否可以配置 RabbitMQ 来执行此操作?