引言:消息堆积的危害

堆积影响:

  • 消费延迟增加
  • 内存占用上升
  • 磁盘空间不足
  • 系统性能下降

原因分析

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万条

本文关键词消息堆积 故障处理 性能调优 应急方案