以“惰性(Lazy)”模式运行的经典队列(惰性队列)
提示
RabbitMQ 不再支持“惰性”模式。此页面仅供历史参考。
在 RabbitMQ 3.12 版本之前,经典队列可以配置为以 lazy(惰性)模式运行,这意味着它们会将所有消息写入磁盘,而不会将消息保留在内存中。此设置现已被忽略,尽管经典队列当前的运行表现与过去惰性模式所提供的功能相似。当前的表现如下:
- 通常情况下,消息会被写入磁盘,但会有一定的延迟;消息会先在内存中进行简短缓存,直到缓冲区刷新至磁盘
- 少量消息会保存在内存中,以便快速交付给消费者(保留在内存中的消息数量取决于消费者消费消息的速度)
- 如果生产者发布的消息可以立即交付给消费者,并且消费者在消息写入磁盘之前就确认了该消息,那么它就不会被写入磁盘(此时消息已被交付并确认,因此无需写入磁盘)
在旧版本中,您需要在每个队列的基础上选择低延迟(非惰性)和低内存使用(惰性)。当前的实现方案在提供低延迟的同时,也能保持低且稳定的内存使用。
经典队列页面提供了关于经典队列实现的更多详细信息。