Sobes.tech
Назад к вопросам
Senior
5

Что такое гарантии доставки в Kafka?

Компании, где спрашивали
purrweb

Ответ от нейросети

sobes.tech AI

Гарантии доставки в Kafka описывают, как именно сообщения доставляются от продюсера к брокеру и от брокера к консьюмеру. Основные уровни гарантий:

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

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

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

Для реализации exactly once в Go-клиентах Kafka нужно использовать поддержку идемпотентности и транзакций, если библиотека это позволяет.

Пример настройки продюсера с идемпотентностью (псевдокод):

producer, _ := kafka.NewProducer(&kafka.ConfigMap{
    "bootstrap.servers": "localhost",
    "enable.idempotence": true, // гарантирует exactly-once
})