Sobes.tech
Middle+
44

¿Qué sucederá con el mensaje en Kafka si se lanza una excepción durante su procesamiento (pero la aplicación no falla)?

Empresas donde se preguntó
ИннотехИннотех

Respuesta de la IA

sobes.tech AI

Если при обработке сообщения из Kafka в приложении выбрасывается исключение, но само приложение не падает, то поведение зависит от способа обработки и настроек потребителя:

  • Автоматическое подтверждение (auto-commit): если offset уже зафиксирован, то сообщение считается обработанным, и оно не будет повторно доставлено, даже если обработка завершилась с ошибкой.
  • Ручное подтверждение (manual commit): если offset не был зафиксирован до исключения, то сообщение останется необработанным, и при следующем запуске или перезапуске потребителя оно будет прочитано заново.

Таким образом, если исключение не приводит к фиксации offset, сообщение будет повторно доставлено и обработано. Если offset уже зафиксирован, сообщение потеряется с точки зрения повторной обработки.

Для надежной обработки часто используют обработку с ручным подтверждением и механизмы повторных попыток или DLQ (Dead Letter Queue) для сообщений, которые не удалось обработать.