Назад к вопросам
СБЕР
Middle — Middle+
70
Какие типы гарантий доставки сообщений реализованы в Kafka и как они работают на практике?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Kafka реализует три основных типа гарантий доставки сообщений:
-
At most once (не более одного раза)
- Сообщение может быть доставлено 0 или 1 раз.
- Нет повторной отправки при сбоях, возможна потеря сообщений.
- Используется, когда важна скорость, а потеря сообщений допустима.
-
At least once (не менее одного раза)
- Сообщение гарантированно будет доставлено, но может быть доставлено несколько раз (дубликаты).
- Обычно достигается подтверждениями (acks) и повторной отправкой при ошибках.
- Требует обработки дубликатов на стороне потребителя.
-
Exactly once (ровно один раз)
- Сообщение доставляется и обрабатывается ровно один раз.
- Реализуется с помощью транзакций Kafka и идемпотентных продюсеров.
- Позволяет избежать дубликатов и потерь, но требует дополнительной настройки и ресурсов.
На практике:
- Для at least once обычно продюсер ждёт подтверждения записи (acks=all), а потребитель коммитит смещения после обработки.
- Для exactly once включают идемпотентность продюсера (
enable.idempotence=true) и используют транзакции.
Это позволяет балансировать между производительностью и надёжностью доставки сообщений.