Для проекта я использую Spring Cloud Stream с Kafka в качестве связующего для нескольких приложений Spring Boot, использующих поток Kafka (KStream).Цель - создать конвейер загрузочных приложений Spring в Spring Cloud Data Flow.Я хотел бы знать, как лучше всего управлять исключениями, возникающими во время потока, потому что неперехваченное исключение останавливает поток Kafka и загрузочное приложение Spring.Я бы предпочел перенаправить сообщение, вызывающее исключение, в очередь недоставленных сообщений.
Если я заменю Spring Cloud Stream на Spring Integration, у меня есть концепция канала ошибок, но Кафка очень хорошо справляется с масштабированием, поэтому яне уверен, что это хорошее решение.
В документе Spring Cloud Stream doc есть пример с компонентом DLQ и исключением try / catch, которое отправляет ему сообщение с использованием низкого уровня.API уровня процессора потока Кафки.Я попробовал аналогичный подход с веткой в моем Kafka Stream со вторым выходом в DLQ.Разделение производится по типу объекта, и я возвращаю другой объект в секции catch.
Какое лучшее решение для обработки исключений без остановки потока Кафки?Хорошо ли решение для ветвления?Любая информация о новом управлении ошибками Kafka / Spring Cloud Stream в ближайшем будущем?
Спасибо!