我们有一个数据对象,其属性分布在三方之间,
在更新该对象的数据时,我们不想让对象部分更新。因此,如果所有各方都参与更新,将会做
1 -> 2 -> 3
顺序。但是如果在步骤1中更新成功并且在步骤2中失败,则我们需要回滚步骤1;如果步骤1& 2成功,步骤3失败,然后步骤1& 2都应该还原。这是一个Spring Boot 1.4,Java 8应用程序。有没有任何优雅的方式让我以编程方式实现它,而不是在第2步&中尝试/捕获3?
希望我能解释清楚。非常感谢任何帮助/线索
答案 0 :(得分:1)
您可以查看集成模式,为您实现这些模式的库(例如Apache Camel)或专有产品(例如Mule(我认为贵,您可能永远不会选择它)或业务流程管理流程,但这些都是您自己需要做出的设计决策。决定不使用任何这些更重量级的方法可能是完全可以的。有关于集成的分配,您可以根据需要找到合适的解决方案来查看该字段,但我不会在其中投入太多时间,只需弄清楚什么是足够好的。
注意:您可能会在分布式交易中找到相关材料,并且您会找到相信它们的人,就像有些人从小就相信复活节兔子一样。我不会告诉你他们不是真的,(过去我已经收到过选票):),但我只是说我还没有见证他们,也不期望。 / p>
答案 1 :(得分:0)
如果我理解得很清楚,第一次和第二次通话超出了您的范围,您可以在数据库交易中轻松回滚?您可以应用补偿模式以补偿已更新的内容。