rabbitMq
rabbitMq如果有消息堆积在MQ,如何解决(消息堆积怎么解决)
当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列存储消息达到上限。之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题。
❒ 解决消息堆积有三种种思路
✔ 增加更多消费者,提高消费速度
✔ 在消费者内开启线程池加快消息处理速度
✔ 扩大队列容积,提高堆积上限
❒ 惰性队列
✔ 接收到消息后直接存入磁盘而非内存
✔ 消费者要消费消息时才会从磁盘中读取并加载到内存
✔ 支持数百万条的消息存储
@Bean
public Queue lazyQueue(){
return QueueBuilder
.durable("lazy.queue")
.lazy()//开启x-queue-mode为lazy
.build();
}
解决消息堆积有三种种思路 ✔ 增加更多消费者,提高消费速度 ✔ 在消费者内开启线程池加快消息处理速度 ✔ 扩大队列容积,提高堆积上限,采用惰性队列