Как при получении сообщений из Kafka гарантировать, что сообщение не будет потеряно?

Не подтверждайте offset до надёжного сохранения результата; обработку проектируйте для повторной доставки, а не рассчитывайте на отсутствие повторов.

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

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

Не подтверждайте offset до надёжного сохранения результата; обработку проектируйте для повторной доставки, а не рассчитывайте на отсутствие повторов.

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

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

Не подтверждайте offset до надёжного сохранения результата; обработку проектируйте для повторной доставки, а не рассчитывайте на отсутствие повторов.

При работе с БД сохраните бизнес-изменение и идентификатор обработанного сообщения атомарно, затем подтвердите позицию Kafka. После сбоя сообщение может прийти ещё раз, поэтому повтор должен быть идемпотентным. Также нужны достаточное хранение сообщений, мониторинг отставания и обработка постоянных ошибок. Абсолютную сохранность нельзя обещать без условий о надёжности самого кластера и потребителя.

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

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

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

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

Подробнее