Какие гарантии доставки есть в Kafka? Что нужно сделать на продюсере, чтобы сделать exactly-once?

Kafka не гарантирует абсолютную доставку сообщений (exactly-once delivery) из коробки, но обеспечивает как минимум один раз (at-least-once) доставку.

Короткий ответ

Что ответить на собеседовании

Kafka не гарантирует абсолютную доставку сообщений (exactly-once delivery) из коробки, но обеспечивает как минимум один раз (at-least-once) доставку.

Подробный разбор

Ответ с пояснениями

Kafka не гарантирует абсолютную доставку сообщений (exactly-once delivery) из коробки, но обеспечивает как минимум один раз (at-least-once) доставку.

Для достижения более строгих гарантий используются следующие механизмы:

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

Таким образом, с помощью идемпотентных продюсеров и транзакций можно приблизиться к exactly-once semantics, но абсолютная гарантия зависит от правильной настройки и обработки на стороне приложения.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку