Выбор ответа Middle Kafka в Spring спрашивают часто обновлено
Коммит offset до обработки
Вопрос
Потребитель коммитит offset сразу после получения, а затем пишет данные в БД. Процесс упал во время записи. Что будет с сообщением?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Потеряется: offset уже сдвинут (at-most-once). После коммита offset Kafka считает сообщение обработанным группой.
Варианты ответа
- Придёт снова после перезапуска потребителя
- Kafka вернёт его в начало партиции для повтора
- Потеряется: offset уже сдвинут (at-most-once)правильный ответ
- Попадёт в DLT автоматически средствами брокера
Разбор
После коммита offset Kafka считает сообщение обработанным группой. Это семантика at-most-once. Для at-least-once коммитят после успешной обработки и делают обработчик идемпотентным на случай повторов. DLT заполняет обработчик ошибок Spring, а не Kafka сама.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.