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