RabbitMQ”啥是“Ready”和“Unacked”类型的消息?

Posted

技术标签:

【中文标题】RabbitMQ”啥是“Ready”和“Unacked”类型的消息?【英文标题】:RabbitMQ" What are "Ready" and "Unacked" types of messages?RabbitMQ”什么是“Ready”和“Unacked”类型的消息? 【发布时间】:2015-11-02 03:27:30 【问题描述】:

我对 RabbitMQ 中的这两种类型的消息感到困惑。

我发现我的一些队列有 0 条“Unacked”和 1000 条“Ready”消息,而有些队列有 1000 条“Unacked”和 0 条“Ready”消息。

它们有什么区别?

我如何知道消费者阅读了多少条消息?

【问题讨论】:

【参考方案1】:

消息在等待处理时就绪

当消费者连接到队列时,它会收到一批要处理的消息。数量在预取大小中给出。当此消费者处理消息时,他们的状态为未确认。

Unacked 表示消费者已承诺处理它们,但尚未确认它们已被处理。当消费者崩溃时,队列知道消费者上线时要再次传递哪些消息。当您有多个消费者时,消息会在他们之间分发。

【讨论】:

值得一提的是,即使没有单个消费者,消息也已准备好(等待)。 Ready 消息由 RabbitMQ 收集。 Unacked 消息被消费者“触摸”,但相关工作尚未确认完成。【参考方案2】:

取消确认: 它用于数据安全注意事项。它保证到达对等点并成功处理。万一消费者在消息处理过程中丢失并且不确认 Rabbit MQ。消息不会丢失,可供消费者再次处理。

【讨论】:

以上是关于RabbitMQ”啥是“Ready”和“Unacked”类型的消息?的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ控制台详解

RabbitMq系列之三:web管理端

rabbitMq实战使用

RabbitMQ队列监控

通过 http 方式获取 RabbitMQ 队列消息数量(python3)

面试大杀器:消息中间件如何实现消费吞吐量的百倍优化?石杉的架构笔记