Что такое at-least-once и exactly-once в Kafka?

At-least-once допускает повтор обработки при сбое. Kafka exactly-once для потоковой обработки связывает запись результата и offsets транзакцией, но не охватывает автоматически внешнюю БД или HTTP.

Короткий ответ

Что ответить на собеседовании

At-least-once допускает повтор обработки при сбое. Kafka exactly-once для потоковой обработки связывает запись результата и offsets транзакцией, но не охватывает автоматически внешнюю БД или HTTP.

Подробный разбор

Ответ с пояснениями

At-least-once допускает повтор обработки при сбое. Kafka exactly-once для потоковой обработки связывает запись результата и offsets транзакцией, но не охватывает автоматически внешнюю БД или HTTP.

При at-least-once consumer сначала выполняет работу, затем подтверждает offset; сбой между этими шагами приводит к повтору. Для Kafka-to-Kafka можно использовать транзакционный producer и чтение read_committed, чтобы атомарно связать output и продвижение offsets. Идемпотентный producer сам по себе устраняет лишь определённые повторы записи producer. Внешний эффект всё равно требует собственной идемпотентности, outbox/inbox или согласованного механизма транзакций. Всегда называйте границу заявленной гарантии.

Источник: Документация Apache Kafka.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее