Получить доступ

Что такое Kafka rebalance и почему он опасен для обработки сообщений?

SeniorKafka в эксплуатацииKafka
Ещё спрашивают так:
  • Почему при ребалансе обработка останавливается?
Коротко

Ребаланс — перераспределение партиций при входе или выходе участника группы. При eager-протоколе все отдают партиции и ждут нового назначения — обработка стоит; незакоммиченная работа повторится.

  • Причины: деплой, автомасштабирование, долгая обработка (max.poll.interval.ms), потеря heartbeat
  • Cooperative-sticky перераспределяет только нужные партиции, без общей остановки
  • Static membership (group.instance.id) переживает перезапуск без ребаланса

А ещё Коммитить обработанное в onPartitionsRevoked

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Он случается при добавлении/падении consumer, timeout heartbeat, изменении partitions. Во время rebalance обработка временно останавливается, partitions revoked у consumers; обработчик rebalance должен зафиксировать прогресс по отозванным partitions и корректно остановить in-flight работу.

Что хотят услышать

  • Что такое ребаланс и что его вызывает.
  • Почему опасен: пауза и повторная обработка.
  • Как смягчить: cooperative, static membership, коммит при отзыве.

Частые ошибки

  • Долго обрабатывать batch и превышать max.poll.interval.ms.
  • Не обрабатывать partition revoke callbacks.

Что спросят дальше

  • Что делает heartbeat thread?
  • Что такое cooperative rebalance?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем