Apache camel 端点在启动时处理故障

Apache camel endpoints handling failures at startup

提问人:Joel 提问时间:10/1/2023 最后编辑:Joel 更新时间:10/3/2023 访问量:40

问:

我想构建一个高可靠的服务,所以我需要在 NATS 端点处理各种网络问题;

  1. 启动异常,在启动时处理异常,我注意到如果服务器在启动时没有响应,APCHE Camel应用程序就会退出。
  2. 在启动后处理重新连接。因此,defaul 行为每两秒重新连接一次,我想覆盖它。

我知道bridgeErrorHandler参数,但实际上它似乎无法正常工作,实际上在以下路线中:

errorHandler(defaultErrorHandler()
            .maximumRedeliveries(5).redeliveryDelay(10000));
// receiving from NATS
from("nats:{{test_topic}}?bridgeErrorHandler=true")
 //and print it to system out via stream component         
 .errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(10000))
 .to("stream:out")
 .log("${body}"); 

代码的行为很奇怪,它没有解决 1.如果 NATS 服务器关闭,应用程序将退出,如果服务器在启动后关闭默认策略(重试 2 秒),则忽略我在路由和上下文级别的设置。 如何处理第 1 点和第 2 点?

Java 错误处理 apache-camel

评论


答:

0赞 Vignesh Nayak Manel 10/2/2023 #1

对于第 2 点,您是否尝试过设置 reconnectTimeWait 参数?而对于第 1 点,处理异常,您可以尝试 exceptionHandler

评论

0赞 Joel 10/2/2023
如果启用了 bridgeErrorHandler,则文档中未使用 exceptionHandler。我想处理代码中的异常,以实现不同的重新连接策略,而不仅仅是以固定的时间间隔重新连接,所以我尽量避免使用使用者设置作为 reconnectTimeWait