Какими гарантиями доставки в Kafka приходилось сталкиваться, в каком случае они используются?
Answer from AI
sobes.tech AI
В Kafka существуют три основных гарантии доставки сообщений:
-
At most once (не более одного раза) — сообщение может быть доставлено 0 или 1 раз. Используется, когда потеря сообщений допустима, но дублирование недопустимо.
-
At least once (минимум один раз) — сообщение гарантированно будет доставлено, но может быть доставлено несколько раз (дубликаты возможны). Это наиболее распространённый режим, когда важна надёжность доставки.
-
Exactly once (ровно один раз) — сообщение доставляется ровно один раз без дубликатов. Реализуется с помощью транзакций Kafka и идемпотентных продюсеров.
Пример использования exactly-once гарантии актуален в финансовых системах, где критично избежать дублирования транзакций. At least once подходит для логирования и аналитики, где важна полнота данных, а at most once — для менее критичных уведомлений.
В Go-клиентах Kafka (например, sarama) можно настроить эти режимы через параметры продюсера и обработку подтверждений.