引言:消息堆积的危害
堆积影响:
- 消费延迟增加
- 内存占用上升
- 磁盘空间不足
- 系统性能下降
原因分析
1. Consumer消费速度慢
- 业务逻辑耗时
- 数据库慢查询
- 外部接口超时
2. Consumer数量不足
- 单个Consumer处理能力有限
3. Consumer宕机
- 无Consumer消费
解决方案
方案1:增加Consumer
# 快速扩容Consumer实例
docker run -d rocketmq-consumer
方案2:提升消费性能
// 增加消费线程
consumer.setConsumeThreadMin(50);
consumer.setConsumeThreadMax(100);
// 批量消费
consumer.setConsumeMessageBatchMaxSize(16);
// 优化业务逻辑
// - 异步处理
// - 批量操作数据库
// - 使用缓存
方案3:临时限流
// 限制Producer发送速率
Thread.sleep(10); // 每条消息延迟10ms
方案4:跳过堆积消息
// 紧急情况:重置offset跳过堆积
consumer.resetOffsetByTimestamp(topic, timestamp);
监控告警
监控指标:
- 消费延迟(Consumer Lag)
- 堆积消息数量
- 消费TPS
告警阈值:
- 延迟 > 5分钟
- 堆积 > 10万条
本文关键词:消息堆积 故障处理 性能调优 应急方案