kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 \ --describe --group order-consumer kafka-topics.sh --describe --topic order-event \ --bootstrap-server 127.0.0.1:9092
消费组 lag 从几千涨到几十万,消费者实例从 2 台加到 6 台,监控曲线几乎没有变化。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。
追下去是这么回事:topic 只开了 3 个分区,同一个组里实例数超过分区数,多出来的实例分不到分区只能空转,加机器等于白加,瓶颈不在消费者数量上。
「Kafka 消费滞后」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
处理上按这个顺序:先用 kafka-consumer-groups 看每个分区的 lag 分布;确认瓶颈是分区数不够 还是单条消息处理得太慢;分区确实不够就扩容 但要接受 key 重新分布带来的顺序变化。
确认没问题再收工,扩容之后分配表里每个实例都拿到分区,lag 在半小时内明显回落。
