经典队列在“懒惰”模式下的运行(懒惰队列)
提示
RabbitMQ不再支持“懒惰”模式。此页面仅供历史参考。
在RabbitMQ 3.12之前,经典队列可以配置为在懒惰
模式下运行,这意味着它们会将所有消息写入磁盘,并且不会将任何消息保存在内存中。此设置现在已被忽略,尽管经典队列的当前行为类似于以前提供的懒惰模式。当前的行为是
- 一般来说,消息会写入磁盘,但会有延迟;消息会在内存中短暂缓冲,直到缓冲区刷新到磁盘
- 一小部分消息会保存在内存中,以便快速传递给消费者(保存在内存中的消息数量取决于消费者消费消息的速度)
- 如果生产者发布的消息可以立即传递给消费者,并且消费者在消息写入磁盘之前确认了消息,那么该消息将不会写入磁盘(此时消息已经被传递并确认,因此无需写入磁盘)
对于旧版本,您需要在每个队列的基础上选择低延迟(非懒惰)或低内存使用量(懒惰)。当前实现提供低延迟,同时具有低且稳定的内存使用量。
有关经典队列实现的更多详细信息,请参阅经典队列页面。