Ручной commit offset позволяет подтверждать продвижение после успешной обработки, а не по таймеру. Это снижает риск пропуска необработанного сообщения, но не исключает повторную доставку.
Для чего делали ручной commit offset вместо автокоммита?
Ручной commit offset позволяет подтверждать продвижение после успешной обработки, а не по таймеру. Это снижает риск пропуска необработанного сообщения, но не исключает повторную доставку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Ручной commit offset позволяет подтверждать продвижение после успешной обработки, а не по таймеру. Это снижает риск пропуска необработанного сообщения, но не исключает повторную доставку.
После сбоя между бизнес-операцией и commit сообщение может прийти снова, поэтому обработка должна быть идемпотентной. При параллельной работе подтверждайте только непрерывно обработанный диапазон партиции, а не самый большой завершившийся offset. Kafka хранит позицию следующего сообщения. В ответе объясните, какая гарантия требовалась именно вашему сервису.