使用多个消费者时 RabbitMQ 的确认顺序

RabbitMQ order of acks when using multiple consumers

我计划将 RabbitMQ 与 java 一起使用,并且想知道 rabbitMQ 在 Ack 顺序下的行为。

这是我的场景。

考虑由 3 个不同的消费者以相同顺序选择的 3 条消息 x、y、z。此时 y 和 z 首先获得成功确认是否可以向消息 x 发送否定确认?我从阅读他们的文档中收集到的是,这是不可能的——这对 rabbitMQ 来说是不可能的吗?

对于多个消费者,我认为这是一种常见的情况。是否有其他支持此功能的排队产品?

每个兔子消费者都在做自己的 "bucket" 工作,它不知道其他消费者在做什么。所以从这个意义上说,不,你不能用 Rabbit 内置的东西来做你描述的事情。

您当然可以编写自己的代码将 N 个消费者联系在一起(类似于 SignalR),这样您就可以让所有其他消费者知道您已经完成了 x。