搜索
写经验 领红包
 > 生活

真实业务常用的分布式事务必达方案有哪些(分布式事务实现方案)

导语:真实业务常用的分布式事务必达方案

分布式事务由于复杂性,不会严格按照定义去实现,不会并发调用多个服务。对于很多业务,分布式事务需求是由串行来解决的。

具体需求为:

1.第一个服务执行成功,则第二个服务执行也要成功;

2.第一个服务执行失败,则第二个服务无需执行;

这种称为分布式必达方案。如下图

分布式必达方案

这种方案和rocketmq的分布式方案类似。

优点是这种结果是同步的,执行成功后,调用方的数据已就绪,而rocketmq的结果是异步的 。

缺点是这种对业务耦合性较高,rocketmq耦合性稍低。

在真实的业务场景中,往往并不会引用复杂的框架,如seata等,最直观和业务可控的技术就是上图中的分布式必达方案。

大道至简,该方案的优点有3个。

1 .相比其他分布式事务方案,运行效率很高。

2.对于具有多阶段的事务,多状态的事务通过设置多个状态也能够处理,此时需要画状态图。

3.可以解决rocketmq不支持的回撤问题。对于第二个服务处理失败,第一个服务如果需要回撤的问题,可在第二个服务执行失败后,设置失败状态标记,调用第一阶段提供的反向操作解决回撤。

设置失败状态标记后,若调用第一阶段反向操作失败,则仍由补偿job继续执行,直至成功。

总结:

本方案核心是本地事务+重试+自动补偿。

孜孜不倦,每日一学

本文内容由小曲整理编辑!