Sobes.tech
Назад к вопросам
Middle
4

Гарантии доставки в Kafka — какие бывают?

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

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

sobes.tech AI

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

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

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

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

Пример настройки продюсера для идемпотентной отправки сообщений на Java:

Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("enable.idempotence", "true"); // Включаем идемпотентность

KafkaProducer<String, String> producer = new KafkaProducer<>(props, new StringSerializer(), new StringSerializer());

Таким образом, выбор гарантии зависит от требований приложения к надежности и допустимости дубликатов.