消息堆积本质
⽣产者的⽣产速度 >> 消费者的处理速度
⽣产者的⽣产速度骤增,⽐如⽣产者的流量突然骤增
消费速度变慢,⽐如消费者实例 IO 阻塞严重或者宕机
如何处理消息堆积
如何处理消息堆积呢?可以从两个当⾯考虑:
- 如何通过解决系统问题、优化代码来避免消息堆积
- 消息已经堆积了,线上如何快速处理
发送端性能优化
从消息堆积若⼲原因来看,消息堆积的原因主要在消费端处理上,本身⽣产者端应该遵循的
原则应该是尽可能快的将消息发送到Broker中去,因此发送端除了业务处理时批量发送暂⽆好的
⼿段优化,⽽且并不是所有的业务处理都⽀持批量发送和批量接收处理。
批量发送是发送端预防消息堆积的⽅式之⼀
消费端性能优化
在设计系统的时候,⼀定要保证消费端的消费性能要⾼于⽣产端的发送性能,这样的系统才能健康的
持续运⾏。
- ⽅式1 增加单个消费者处理能⼒
增加单个消费者的处理能⼒这块没有绝对的办法&#