适用场景

消息队列的价值是解耦与削峰,风险是积压:消费慢了没人发现,磁盘写满后整个链路停摆。

配置步骤(Kafka 集群与消费积压)

# 查看消费组积压
kafka-consumer-groups.sh --bootstrap-server kafka:9092 --describe --group order-group
# 扩容消费者(不超过分区数)
# 检查副本同步
kafka-topics.sh --bootstrap-server kafka:9092 --describe --topic orders | head

关键参数与建议

  • 集群规划:分区数按吞吐与并发消费者数设计,避免过多分区拖慢元数据
  • 副本与可靠性:至少 2~3 副本,生产端 acks 与消费端手动提交按业务选择
  • 积压监控:Lag 监控与告警,设置消费延迟阈值
  • 磁盘与保留:按流量计算保留策略,避免磁盘写满
  • 幂等与顺序:业务侧要能处理重复消息,顺序消息需按 key 分区

容易踩的坑

  • 消费者数超过分区数,多余消费者空转
  • 副本数不足,Broker 故障丢数据
  • 积压无监控,磁盘写满后全链路停摆

验证与巡检

kafka-consumer-groups.sh --bootstrap-server kafka:9092 --describe --all-groups | grep -c LAG
  • 巡检:Lag 在阈值内、副本同步正常、磁盘余量 >30%

小结

消息队列的验收:压测达标、积压能告警、消费者扩容有效、磁盘有保护策略。四条缺一条,早晚出事。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。