Что произойдёт, если pod с Kafka consumer упадёт во время обработки сообщения до коммита offset?

После обнаружения отказа партиции назначат живому consumer, который продолжит с последнего зафиксированного offset. Сообщение может обработаться повторно, поэтому побочные эффекты должны быть идемпотентными.

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

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

После обнаружения отказа партиции назначат живому consumer, который продолжит с последнего зафиксированного offset. Сообщение может обработаться повторно, поэтому побочные эффекты должны быть идемпотентными.

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

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

Условие

Что произойдёт, если pod с Kafka consumer упадёт во время обработки сообщения до коммита offset?

Ответ

После обнаружения отказа партиции назначат живому consumer, который продолжит с последнего зафиксированного offset. Сообщение может обработаться повторно, поэтому побочные эффекты должны быть идемпотентными.

Если обработчик уже записал результат в БД, но не успел commit offset, новый consumer снова получит запись. Подтверждение после обработки даёт основу at-least-once, но требует дедупликации по event_id или другой устойчивой бизнес-идентичности. При ошибочной фиксации offset до завершения работы сообщение можно потерять для этого приложения. Время восстановления зависит от обнаружения отказа и rebalance. Транзакции Kafka помогают внутри Kafka-контура, но не делают произвольную внешнюю БД атомарной с offset автоматически.

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

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

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

Подробнее