关于预留资源要多说两句 , 资源都是有限的 , 因此预留资源都是有时效的 , 如果当预留资源迟迟得不到Confirm——我们将这种情况称为timeout——参与方会自行将其Cancel 。也就是说参与方对于资源具有自我管理能力 , 这样可以避免因发起方的问题导致资源被长期占用 。
TCC增加了业务检查和撤销事务的功能 。同时 , TCC将2PC数据库层面的动作提升到了服务层面 , 不同的是TCC的所有动作都是一个本地事务 , 每个本地事务都在动作完成后commit到数据库:
- Try相当于2PC的Commit request phase , 外加了业务检查逻辑
- Confirm相当于2PC的Commit phase的commit动作
- Cancel相当于2PC的Commit phase的rollback动作
- 发起方 发送Try到所有 参与方
- 每个 参与方 执行Try , 预留资源
- 发起方 收到所有 参与方 的Try结果
- 发起方 发送Confirm/Cancel到所有 参与房
- 每个 参与方 执行Confirm/Cancel
- 发起方 收到所有 参与方 的Confirm/Cancel结果
本文作者:等不到的口琴
本文链接:https://www.cnblogs.com/Courage129/p/14433462.html
【亿级流量架构之分布式事务思路及方法】
推荐阅读
- 一元一g一小时流量发什么给10086,10085打电话说流量-
- 等保2.0的解决方案,“零信任架构”SDP介绍
- 银行数据仓库的系统架构是什么?看这篇足矣
- 什么是微内核架构设计?
- 洋葱架构Onion Architecture
- 年轻人痴迷的互联网有多挣钱?架构师稳坐高薪榜首
- 为什么CTO、技术总监、架构师都不写代码,还这么牛逼?
- 基于SpringBoot的微服务架构与K8S容器部署实践
- 一通百通,一文实现灵活的 K8S 基础架构
- 微服务架构下该如何技术选型呢?