Какие есть стратегии доставки сообщений в Kafka (at-least-once, at-most-once, exactly-once)?

По умолчанию Kafka реализует стратегию доставки "at least once" (как минимум один раз).

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

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

По умолчанию Kafka реализует стратегию доставки "at least once" (как минимум один раз). Это означает, что каждое сообщение будет доставлено потребителю по крайней мере один раз, но в некоторых случаях может быть доставлено несколько раз (дубликаты).

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

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

По умолчанию Kafka реализует стратегию доставки "at least once" (как минимум один раз). Это означает, что каждое сообщение будет доставлено потребителю по крайней мере один раз, но в некоторых случаях может быть доставлено несколько раз (дубликаты).

Причина в том, что продюсер получает подтверждение записи сообщения в лог, а потребитель самостоятельно управляет смещением (offset). Если потребитель не зафиксировал смещение после обработки сообщения, при повторном запуске он может получить это же сообщение снова.

Для обеспечения "exactly once" доставки требуется дополнительная логика, например, идемпотентные продюсеры и транзакции, которые не включены в базовую настройку по умолчанию.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее