IntermediatePerformance
What causes consumer rebalancing and how can you minimize it?
Reference answer
Rebalance triggers: consumer join (scale up), consumer leave/crash (scale down or max.poll.interval.ms exceeded), subscription change, broker changes (rarely). Minimization strategies: 1) group.instance.id for static membership — avoids rebalance on pod restart. 2) CooperativeStickyAssignor — only moves necessary partitions instead of revoking all. 3) session.timeout.ms higher than GC pauses / processing spikes. 4) max.poll.interval.ms higher than worst-case processing time. 5) heartbeat.interval.ms=3s (1/3 of session.timeout.ms). 6) Avoid stop-the-world GC by sizing JVM heap appropriately.
Expected key concepts: static membership, group.instance.id, CooperativeStickyAssignor, session.timeout.ms, max.poll.interval.ms, heartbeat.interval.ms, GC, pod restart