Что происходит, если один из consumer'ов в группе отваливается? Расскажите про ребалансировку.

В Kafka после обнаружения отказа consumer его партиции перераспределяются между живыми участниками группы. Новый владелец продолжает с сохранённого offset, поэтому возможны повторы.

Короткий ответ

Что ответить на собеседовании

В Kafka после обнаружения отказа consumer его партиции перераспределяются между живыми участниками группы. Новый владелец продолжает с сохранённого offset, поэтому возможны повторы.

Подробный разбор

Ответ с пояснениями

В Kafka после обнаружения отказа consumer его партиции перераспределяются между живыми участниками группы. Новый владелец продолжает с сохранённого offset, поэтому возможны повторы.

Отказ обнаруживают по правилам протокола группы, heartbeat и таймаутам; точные параметры зависят от протокола и версии клиента. При ребалансировке меняется назначение партиций, а отдельные участники могут временно остановить их обработку.

Если сообщение обработано, но прогресс не подтверждён, новый consumer получит его снова. Если offset сохранён раньше результата, возможен пропуск бизнес-обработки. Поэтому нужны правильный порядок подтверждения, идемпотентность и контролируемая остановка.

Источник: Документация Apache Kafka.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее