如何处理在传输过程中终止的集成流程

How to handle integration flows that terminated in transit

我们如何处理以下流程,当它终止时(可能是服务器在其中一个转换正在进行时死机)?

@Bean
public IntegrationFlow sampleFlow() {
    return IntegrationFlows.from(httpAdapters.pushInbound())
            .transform(transformer1)
            .transform(transformer2)
            .handle(messageHandler1)
            .get();
}

有什么方法可以让 springboot 应用程序从中断处继续运行?最好的方法是什么?

鉴于此,我们正在尝试从 system1 -> system2 推送数据。系统 1 对 spring 集成进行了休息 api 调用(http 调用)。

最好的方法是在流程步骤之间保留消息。

为此,我们提供了 QueueChannelChannelMessageStore 以及针对目标数据库的各种实现:https://docs.spring.io/spring-integration/docs/current/reference/html/system-management-chapter.html#message-store

当然,最好的方法是使用事务性 存储,以便在失败时自动回滚。因此,下次您的流将从商店中提取消息进行处理。