Sobes.tech
Back to questions
Senior
2

Какими гарантиями доставки в Kafka приходилось сталкиваться, в каком случае они используются?

Companies where asked
Магнит Тех

Answer from AI

sobes.tech AI

В Kafka существуют три основных гарантии доставки сообщений:

  1. At most once (не более одного раза) — сообщение может быть доставлено 0 или 1 раз. Используется, когда потеря сообщений допустима, но дублирование недопустимо.

  2. At least once (минимум один раз) — сообщение гарантированно будет доставлено, но может быть доставлено несколько раз (дубликаты возможны). Это наиболее распространённый режим, когда важна надёжность доставки.

  3. Exactly once (ровно один раз) — сообщение доставляется ровно один раз без дубликатов. Реализуется с помощью транзакций Kafka и идемпотентных продюсеров.

Пример использования exactly-once гарантии актуален в финансовых системах, где критично избежать дублирования транзакций. At least once подходит для логирования и аналитики, где важна полнота данных, а at most once — для менее критичных уведомлений.

В Go-клиентах Kafka (например, sarama) можно настроить эти режимы через параметры продюсера и обработку подтверждений.