Есть ли риск потерять сообщение на consumer и зачем нужен ручной commit offset?

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

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

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

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

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

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

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

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

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

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

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

Подробнее