Встречается на собеседованиях • сегодня

Как гарантируется, что сообщение не обработается дважды в Kafka

В Kafka гарантия однократной обработки (exactly-once) достигается комбинацией механизмов:

  1. Идемпотентность продюсера
    Позволяет избежать дублирования сообщений при ретраях:
    java
    props.put("enable.idempotence", "true");
  1. Транзакции
    Атомарные операции "прочитал-обработал-записал":

    java
    producer.initTransactions();
    producer.beginTransaction();
    producer.send(record);
    producer.commitTransaction();
  2. Read-Process-Write цикл
    Оффсеты хранятся в той же транзакции, что и выходные данные.

Нюансы:

  • Требует Kafka ≥ 0.11
  • Увеличивает накладные расходы
  • Работает только в рамках одного приложения
  • Для распределенных систем нужны дополнительные механизмы (например, двухфазные коммиты)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы