Это не верблюд, а вопрос Кафки. Перебалансировка обрабатывается Kafka и запускается всякий раз, когда потребитель явно покидает группу потребителей или умирает (больше не отправляет тактовые импульсы).
Kafka 2.3 представила новую функцию под названием " Stati c Членство ", чтобы избежать перебалансировки только из-за перезапуска потребителя.
Но в вашем случае (другой потребитель должен взять на себя нагрузку уходящего потребителя), я думаю, Кафка должен вызвать перебалансировку по всем потребителям из-за используемого протокола.
См. Также эту статью , в которой приведено довольно глубокое описание перебалансирования и его компромиссов между доступностью и отказоустойчивостью.
Редактировать из-за комментариев
Если вы хотите избежать перебалансировки, я думаю, вам придется увеличить как session.timeout.ms
(интервал сердцебиения), так и max.poll.interval.ms
(обработка Тайм-аут).
Но даже если вы установите их очень высоко, я полагаю, что это не будет работать надежно, потому что приостановка маршрута все еще может произойти незадолго до сердцебиения (просто плохое время).
См. в этом вопросе за разницу между session.timeout.ms
и max.poll.interval.ms
.