使用场景:消费者宕机、维护关闭 导致 消息堆积时
默认情况下,消息是存储在内存中,使用惰性队列(lazy)可以将消息保存在磁盘中,减少内存开销,防止消息丢失,避免因消费者宕机,消息堆积,在3.6.0之前的版本无序做任何更改。
惰性队列会把消息缓存在磁盘中,内存中保留对应的索引,需要消费这些消息的时候再通过索引到磁盘中读取
惰性队列比较慢,需要根据内存中的索引到磁盘读取消息
可以通过调用cannel.queueDeclare方法的时候在参数中设置,x-queue-mode
也可以通过policy的方式设置
如果两种都设置,Policy方式优先级更高
java代码
内存开销对比