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