Exactly-once в Apache Kafka достигается с помощью механизма идемпотентных продюсеров и транзакций. Продюсер должен быть настроен с параметром enable.idempotence=true, а для координации записи и обработки сообщений требуется использовать транзакционные сессии (transactional.id). На стороне консюмера рекомендуется использовать read-process-write паттерн с поддержкой транзакций, чтобы гарантировать атомарность обработки и смещения (offset commit) в рамках одной транзакции. Такой подход предотвращает как дублирование, так и потерю сообщений при сбоях.
Развёрнутый ответ доступен только зарегистрированным пользователям. Войдите в аккаунт или зарегистрируйтесь.