我有3个Spring Boot-Camel应用程序,它们分别运行。我需要链接这些流程,例如,在流程A完成后,它应该启动流程B,然后一旦流程B完成,就应该继续进行流程C。如果任何一个流程在两者之间失败,则流程链应该重试失败的流程,然后继续执行下一个。另外,在过程A中,如果路由中的任何步骤都失败,那么我还需要重试并从中间步骤开始。有人可以帮助我实现这种情况吗?
答案 0 :(得分:0)
您所描述的听起来像Pipes and Filters pattern。
按照这种模式,您的3个应用程序将成为“过滤器”,如果您向游戏中添加像ActiveMQ之类的消息代理,则会在两者之间获得“管道”(消息队列)和非常好的去耦。
这意味着您的应用程序从队列中消费以处理新消息,并生成另一个队列以将消息移交给下一个处理步骤。对于重试,您可以对本地JMS事务使用 Camel错误处理(重试失败的路由步骤)或经纪人重新交付机制(重试整个路由)。