Kafka 消费者组频繁 Rebalance 的定位
消费停滞、lag 波动,日志频繁出现 Rebalance、Revoking previously assigned partitions。消费者组在 PreparingRebalance 和 Stable 之间反复切换。
kafka-consumer-groups --bootstrap-server broker:9092 \
--describe --group app-worker
kafka-consumer-groups --bootstrap-server broker:9092 \
--describe --group app-worker --state
消费者日志:
journalctl -u app-worker --since '30 min ago' | grep -i rebalance
poll 处理时间超过 max.poll.interval.ms。max.poll.records 太大,批量处理过慢。session.timeout.ms/heartbeat.interval.ms 与网络不匹配。max.poll.records,把处理时间控制在 max.poll.interval.ms 内。session.timeout.ms 和心跳,确保网络和 GC 不误判。kcat — 消费验证kafka-topics — 分区变化kafka-consumer-groups — 组状态合上页面,先回答,再展开对照。
kafka-consumer-groups --describe/--state 看组状态在 PreparingRebalance 与 Stable 间切换,并在消费者日志中查 rebalance 记录。poll 处理时间超过 max.poll.interval.ms、max.poll.records 过大,或 session.timeout.ms/心跳与网络不匹配。max.poll.records、把处理异步化或拆分、调整 session.timeout.ms 与心跳、控制滚动发布节奏,并使用 cooperative-sticky assignor 和静态成员。