事务以及分布式事务

1、TCC分布式事务原理

  使用springcloud微服务,也有可能各个服务之间,没有形成一个整体的事务。
  分步实现:
    1)、try阶段:多个服务之间,在操作的时候对数据库的操作都是一个"预"操作阶段,锁定某个资源,冻结某部分资源等(把改变的数据先存临时表)。

    2)、confirm阶段:如果服务全部通过,依靠TCC分布式事务框架来执行---加入一个confirm类,提供一个接口,将刚刚的临时表数据,变为对数据库真实的操作。(完成所有逻辑)

    3)、Cancel阶段:如果某个服务挂了---也是提供一个接口,将临时表中的数据,恢复到原数据库中。(回滚所有逻辑)

    该事务适用于同步操作。

2、可靠消息最终一致性方案

  基于 mq 来进行不断重试。调用系统A可能不成功,可能成功,不成功就取消操作,成功就发送消息到MQ。 被调用系统B成功,事务结束。系统B 不成功,消息就一直重试。

原文地址:https://www.cnblogs.com/AlmostWasteTime/p/10169185.html