RabbitMQ无确认行为

bvjveswy  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(180)

我正在准备rabbitMq设置,我对noAck标志感到困惑,因为我不明白它的确切含义。让我困惑的是以下内容:

  • 如果我设置noAck:false我假设这意味着自动确认已启用,这意味着Rabbit将发送一条消息,但手动确认是不必要的,我希望发布速率与消费者速率相同,因为Rabbit不知道工作者何时实际完成处理消息,它将立即发送另一条消息,但事实并非如此。如果消费者比发布者慢,那么消费者的速度实际上更低,我不明白为什么,因为我认为消息会在消费者的记忆中排队,而rabbitmq总是会发送另一条消息,即使工人/消费者还没有完成它。

总结:为什么noAck设置为true时发布者速率与使用者速率不同

e0bqpujr

e0bqpujr1#

当您将noAck设置为true时,表示自动确认消息,即使工作程序无法处理消息,也会将其从队列中删除,
当您将noAck设置为false时,这意味着在您手动确认您已成功处理/确认消息之前,该消息将保留在队列中,在一定时间后,它将重新排队并交付给不同的使用者

相关问题