提问人:Joel 提问时间:10/1/2023 最后编辑:Joel 更新时间:10/3/2023 访问量:40
Apache camel 端点在启动时处理故障
Apache camel endpoints handling failures at startup
问:
我想构建一个高可靠的服务,所以我需要在 NATS 端点处理各种网络问题;
- 启动异常,在启动时处理异常,我注意到如果服务器在启动时没有响应,APCHE Camel应用程序就会退出。
- 在启动后处理重新连接。因此,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 点?
答:
0赞
Vignesh Nayak Manel
10/2/2023
#1
对于第 2 点,您是否尝试过设置 reconnectTimeWait 参数?而对于第 1 点,处理异常,您可以尝试 exceptionHandler
评论
0赞
Joel
10/2/2023
如果启用了 bridgeErrorHandler,则文档中未使用 exceptionHandler。我想处理代码中的异常,以实现不同的重新连接策略,而不仅仅是以固定的时间间隔重新连接,所以我尽量避免使用使用者设置作为 reconnectTimeWait
评论