Я использую пользователя kafka, настроенного на Camel DSL, для прослушивания темы Kafka. Существует еще одно приложение (сервер), где kafka настроен и который создает данные по этой теме.Как справиться с запуском исключения и повторного запуска в Camel DSL при запуске конечных точек
<camel:endpoint id='docInfo' uri='kafka:${camel.kafka_broker}? topic=${camel.kafka_topic}&zookeeperConnect=${camel.kafka_zookeeper}&groupId=${k afka_groupId}&clientId=${camel.kafka_host}&consumerStreams=${camel.kafka_threads }' />
<!-- The camel route to consume the message -->
<camel:route id="consumeDocInfoFromKafka" autoStartup="false">
<camel:from uri='ref:docInfo' />
</camel:route>
Все работает за исключением одного сценария, в котором во время запуска, если конечные точки вниз, загрузка camelContext терпит неудачу и целое приложение получает вниз. Я хочу решение, чтобы я мог обработать это исключение в своем коде и повторить попытку для подключения через определенное время, так что всякий раз, когда сервер работает, мой потребитель может подключиться к этому.
У меня есть еще одно сомнение: если я вызываю эту функцию, чтобы получить маршрут из моего потока (чтобы начать маршрут) camelContext.getRoute ("consumeDocInfo"); это вернет null в течение нескольких секунд, даже если контекст уже вставлен, но через несколько секунд он возвращает мне маршрут. Есть ли какая-то конкретная причина, по которой требуется время для инициализации или чего-то еще? – Prashant