0

我是骆驼新手,正在寻找模式或策略来管理骆驼路由中目标系统的可用性。骆驼和源/目标系统可用性策略

例如,假设我想: - 从一个文件服务器 读取输入的数据 - 过程中的数据(数据 - > targetData) - 到目标数据(TargetData)发送到使用REST服务的目标网站(称之为TargetSystem)

我的问题是如果TargetSytem停机,最好的策略是什么?

我明白,如果一条路线失败,可以回滚整个过程。但是如果TargetSystem是一个外部系统并且可能停机数小时,我不认为试图回滚这个过程直到目标系统启动是一个好方法。

有没有适合这个问题的任何模式或策略?

问候

吉尔斯

回答

0

这是我与一对夫妇的系统使用的模式。

  • 坚持你的TargetData某处(数据库表,JMS队列,Redis的,...)
  • 创建,读取未发送TargetData并将其发送到TargetSystem
    • 如果路由转移OK,标记TargetData据此(例如:在表格行中设置一个标志,从队列中移除,等等......)
  • 定时从定时器和/或其他路由触发此类路由。您甚至可以使用shell命令触发它,以手动“强制”重发未发送的数据。

您可以自定义这个您的需要和例如添加日志记录在适当情况下,跟踪在数据库表时,每个暂定发送时,它失败多少次,有多少重试等等...

现在,您可以在2个模块的模块化应用程序:一个接收数据并对其进行处理,以TargetData,另一个是管理TargetData的TargetSystem转移到
模块可以表示2个CamelContextes,2个OSGi包,2个完全独立的Java应用程序。