Выбор ответа Middle Kafka в Spring спрашивают часто обновлено

Коммит offset до обработки

Вопрос

Потребитель коммитит offset сразу после получения, а затем пишет данные в БД. Процесс упал во время записи. Что будет с сообщением?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Потеряется: offset уже сдвинут (at-most-once). После коммита offset Kafka считает сообщение обработанным группой.

Варианты ответа

  1. Придёт снова после перезапуска потребителя
  2. Kafka вернёт его в начало партиции для повтора
  3. Потеряется: offset уже сдвинут (at-most-once)правильный ответ
  4. Попадёт в DLT автоматически средствами брокера

Разбор

После коммита offset Kafka считает сообщение обработанным группой. Это семантика at-most-once. Для at-least-once коммитят после успешной обработки и делают обработчик идемпотентным на случай повторов. DLT заполняет обработчик ошибок Spring, а не Kafka сама.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме