一个上游事件包含多个项目,如何按事务方式设置 Spring 集成管道



让我们想象一下,您有包含多个项目的传入上游消息的情况。每个项都包含参与作为管道一部分实现的业务逻辑的信息。

我可以看到的困难:消息必须被拆分并转换为多个内部事件,这些事件被进一步处理,如果其中一个失败,那么所有内部事件都应该回滚如果我们有一个上游消息 = 1 个项目,那就容易多了

从建筑的角度来看,应该如何应对这种情况?这里采用的最佳模式是什么?应该如何设置交易?

谢谢!

看起来你的问题不清楚,transaction这个词用于不同的主题......

无论如何,让我猜猜你想要什么。

如果您要(并且可以)回滚部分业务请求,则应确保所有业务请求的全局 XA 事务,并在同一线程中执行所有拆分的子任务。因为只有这样才能让您保留和跟踪事务,并在之后回滚,如果那样的话。

如果您无法处理 XA 和单线程,那么您应该查看一些解决方案,例如补偿交易或通过索赔检查进行确认。

但这已经超出了Spring Integration的范围。

最新更新