SpringCloud----分布式事务
2020-12-22 11:28
标签:取消 oracle logs 多个 返回 info blog 回滚 结果 参考:https://www.cnblogs.com/balfish/p/8658691.html TCC事务补偿是基于2PC实现的业务层事务控制方案,它是Try、Confirm和Cancel三个单词的首字母,含义如下: 1、Try 2、Confirm 3、Cancel 优点:最终保证数据的一致性,在业务层实现事务控制,灵活性好。 注意: TCC的try/confirm/cancel接口都要实现幂等性,在为在try、confirm. cancel失败后要 不断重试。 SpringCloud----分布式事务 标签:取消 oracle logs 多个 返回 info blog 回滚 结果 原文地址:https://www.cnblogs.com/yanxiaoge/p/13216216.html解决方案
2PC(两阶段提交协议)
2PC
事务补偿(TCC)
下单业务由订单服务和库存服务协同完成,在try阶段订单服务和库存服务完成检查和预留资源。订单服务检查当前是否满足提交订单的条件(比如:当前存在未完成订单的不允许提交新订单)。库存服务检查当前是否有充足的库存,并锁定资源。
订单服务和库存服务成功完成Try后开始正式执行资源操作。订单服务向订单写一条订单信息。库存服务减去库存。(真实向数据库写入数据)
如果订单服务和库存服务有一方出現失敗則全部取消操作。订单服务需要刪除新増的订单信息。库存服务减去的库存还原(事务补偿)
缺点:开发成本高,每个事务操作每个参与者都需要实现try/confirm/cancel三个接口(由程序员自己实现)。
什么是幂等性?
幂等性是指同一个操作无论请求多少次,其结果都相同。
幂等操作实现方式有:
文章标题:SpringCloud----分布式事务
文章链接:http://soscw.com/index.php/essay/37563.html