По порядку Middle Kafka в Spring обновлено

Обработка сообщения at-least-once

Вопрос

Расставьте шаги обработки сообщения потребителем с гарантией at-least-once.

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

Расставьте шаги по порядку стрелками.

  1. 1
    Десериализация записи
  2. 2
    Коммит offset
  3. 3
    Бизнес-обработка и запись в БД с отметкой о сообщении
  4. 4
    poll получает пачку сообщений
  5. 5
    Проверка, не обработано ли сообщение раньше (идемпотентность)
Показать ответ и разбор

Коротко

Offset коммитится последним: при падении до коммита сообщение придёт снова, а проверка идемпотентности не даст обработать его дважды.

Правильный порядок

  1. 1
    poll получает пачку сообщений
  2. 2
    Десериализация записи
  3. 3
    Проверка, не обработано ли сообщение раньше (идемпотентность)
  4. 4
    Бизнес-обработка и запись в БД с отметкой о сообщении
  5. 5
    Коммит offset

Разбор

Offset коммитится последним: при падении до коммита сообщение придёт снова, а проверка идемпотентности не даст обработать его дважды.

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

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

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