> 生活
真实业务常用的分布式事务必达方案有哪些(分布式事务实现方案)
导语:真实业务常用的分布式事务必达方案
分布式事务由于复杂性,不会严格按照定义去实现,不会并发调用多个服务。对于很多业务,分布式事务需求是由串行来解决的。
具体需求为:
1.第一个服务执行成功,则第二个服务执行也要成功;
2.第一个服务执行失败,则第二个服务无需执行;
这种称为分布式必达方案。如下图
分布式必达方案
这种方案和rocketmq的分布式方案类似。
优点是这种结果是同步的,执行成功后,调用方的数据已就绪,而rocketmq的结果是异步的 。
缺点是这种对业务耦合性较高,rocketmq耦合性稍低。
在真实的业务场景中,往往并不会引用复杂的框架,如seata等,最直观和业务可控的技术就是上图中的分布式必达方案。
大道至简,该方案的优点有3个。
1 .相比其他分布式事务方案,运行效率很高。
2.对于具有多阶段的事务,多状态的事务通过设置多个状态也能够处理,此时需要画状态图。
3.可以解决rocketmq不支持的回撤问题。对于第二个服务处理失败,第一个服务如果需要回撤的问题,可在第二个服务执行失败后,设置失败状态标记,调用第一阶段提供的反向操作解决回撤。
设置失败状态标记后,若调用第一阶段反向操作失败,则仍由补偿job继续执行,直至成功。
总结:
本方案核心是本地事务+重试+自动补偿。
孜孜不倦,每日一学
本文内容由小曲整理编辑!