Выбор ответа Senior Kafka обновлено

Идемпотентный продюсер

Вопрос

От каких дублей защищает идемпотентный продюсер Kafka?

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

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

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

Коротко

Правильный ответ: От дублей при ретраях продюсера, когда ответ потерялся, а запись прошла: брокер отбросит повтор. Продюсер получает идентификатор и нумерует сообщения в каждой партиции, брокер видит повтор номера и не пишет его второй раз.

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

  1. От любых дублей во всей системе, включая повторную обработку сообщения на консьюмере после ребаланса
  2. От дублей при ретраях продюсера, когда ответ потерялся, а запись прошла: брокер отбросит повторправильный ответ
  3. От одинаковых сообщений, отправленных разными продюсерами: брокер сравнивает ключ и тело
  4. От дублей при повторной публикации из приложения после его рестарта с тем же client.id

Разбор

Продюсер получает идентификатор и нумерует сообщения в каждой партиции, брокер видит повтор номера и не пишет его второй раз. Это закрывает дубли сетевых ретраев. Повторная обработка на консьюмере, одинаковые события от разных продюсеров и повторная отправка после рестарта приложения (новая сессия продюсера) этим механизмом не покрываются: нужны транзакции или дедупликация по id события.

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

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