首页 新闻 会员 周边 捐助

Camel实现持久化、监控方案询问

0
悬赏园豆:200 [已解决问题] 解决于 2023-07-07 11:34
from("jetty:http://0.0.0.0:8282/cc")
                .process(new HttpProcessor())
                .to("log:test1?showExchangeId=true")
                .to("log:test2?showExchangeId=true");

这是一段简单的camel路由配置,我想做的是监听该路由中每个端点执行的情况、持久化端点执行情况、中断重新运行等。
对于监控端点的执行情况:我想到的有在每一个端点之间使用Process来实现自定义实现监控,但要求不能这么做,但我在官方文档中并未找到camel对于这种端点之间执行情况(例如开始和结束、异常)的支持或扩展。注意不是拿整个路由的时机(例如RoutePolicySupport)。
对于持久化端点和中断重新运行:这个我想到的除了使用process来自定义持久化以外,暂未找到合适的持久化方案,中断后执行倒是可以使用camel中的某些service来实现。

苦行僧DH的主页 苦行僧DH | 初学一级 | 园豆:26
提问于:2022-03-02 22:42
< >
分享
最佳答案
0

对于监控端点的执行情况,你可以使用Camel的JMX功能,它可以提供一个标准化的方式来访问应用中定义的上下文、路由、端点的元数据,也可以用JMX来与这些组件交互(启动/停止/重启等)1。你可以使用JConsole或者其他JMX客户端来连接到Camel的MBean服务器,查看和操作Camel的组件。

对于持久化端点和中断重新运行,你可以使用Camel的Saga模式,它可以保证在一个长时间运行的业务流程中,如果某个步骤失败了,可以回滚之前的步骤或者执行补偿操作。你可以使用不同的Saga服务来存储和管理Saga状态,比如LRA、ZooKeeper、Infinispan等。你也可以使用Camel的Circuit Breaker模式,它可以在某个端点出现故障时,自动切换到备用端点或者降级处理。

收获园豆:200
长别 | 菜鸟二级 |园豆:427 | 2023-07-07 11:29

这是些不错的方向,感谢

苦行僧DH | 园豆:26 (初学一级) | 2023-07-07 11:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册