我有 3 个单独运行的 Spring Boot - Camel 应用程序。我需要链接这些进程,比如在进程 A 完成时它应该启动进程 B,然后一旦进程 B 完成,它应该继续进程 C。如果任何进程在两者之间失败,进程链应该重试失败的一个,然后继续执行到下一个。此外,在流程 A 中,如果路线中的任何步骤出现任何故障,那么我还需要重试并从中间步骤开始。任何人都可以帮助我实现这个场景吗?
问问题
153 次
1 回答
0
您所描述的听起来像Pipes and Filters 模式。
在这种模式下,您的 3 个应用程序将是“过滤器”,如果您将ActiveMQ之类的消息代理添加到游戏中,您将获得介于两者之间的“管道”(消息队列)以及非常好的解耦。
这意味着您的应用程序从队列中消费以处理新消息并生成到另一个队列中以将消息移交给下一个处理步骤。对于重试,您可以使用Camel 错误处理(重试失败的路由步骤)或带有本地 JMS 事务的代理重新传递机制(重试整个路由)。
于 2018-06-28T08:35:22.447 回答