Kafka是大型架构核心,下面我详解Kafka消费积压如何排查@mikechen
先确认是否真的“积压”
Kafka出现消费积压时,排查可以按“先确认现象。
再找瓶颈点(生产、消费、Broker)、最后制定缓解方案”的思路来做。

在监控或命令行中,查看每个分区的 LogEndOffset 和消费者组的 Consumer Offset,计算 Lag 是否持续增大而不是短时抖动。
kafka-consumer-groups.sh \ --bootstrap-server broker:9092 \ --group your-group \ --describe
确认积压是集中在少数分区还是所有分区。
以及是否只影响某一个消费者组,避免误判成网络或 Broker 故障。
快速定位是“生产快”还是“消费慢”
对比生产 TPS 、和消费 TPS。

如果生产明显大于消费,并且消费者实例负载不高。
一般是消费者侧逻辑慢、或线程数不足。
检查消费者进程是否存在频繁 Rebalance、宕机、异常重启等现象。
消费逻辑慢(业务代码拖慢)
常见慢点:

同步 RPC / HTTP 调用;
同步写数据库(尤其是单行写);
重度序列化 / JSON 转换;
本地锁竞争;
排查方式:
打印单条消息处理耗时;
观察 poll() 到 commit() 时间。
集群与分区层面的排查
查看 topic 分区数与消费者实例数是否匹配,如果分区太少。

即使加机器也无法提升并行度,需要考虑扩分区或新建临时 topic 做旁路消费。
检查 Broker 端是否存在磁盘、网络、控制器选举等问题。
或限流、配额导致拉取速度上不去,这类问题会表现为消费者 poll 到的数据量很少。
mikechen睿哥
10年+一线大厂架构实战经验,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。