初识惰性队列
在高并发场景下,MQ 中涌入大量请求,消息持续积压,如何处理?
除了扩容多个消费者的情况下,可以采用惰性队列方式(性能差)。
惰性队列的特征:
- 接收到消息后直接存入磁盘而非内存。
- 消费者要消费消息时才从磁盘中读取加载到内存。
- 支持数百万条的数据存储。
要设置队列为惰性队列,只需要在声明队列时,指定 x-queue-mode 属性为 lazy 即可。
SpringAMQP 声明惰性队列 @Bean 对象中(推荐)
// Bean 对象声明惰性队列
/**
* 声明惰性队列
* @return
*/
@Bean
public Queue lazyQueue() {
return QueueBuilder.durable("lazy.queue")
.lazy()
.build();
}