mirror of
https://github.com/qiurunze123/miaosha.git
synced 2023-11-19 22:41:03 +08:00
提交 tcc
This commit is contained in:
parent
b02d4df088
commit
a69c0b0959
|
@ -33,58 +33,52 @@
|
||||||
|
|
||||||
Tcc项目地址:
|
Tcc项目地址:
|
||||||
|
|
||||||
[![地址]()](https://github.com/changmingxie/tcc-transaction/tree/master-1.2.x)
|
[![地址](tcc地址)](https://github.com/changmingxie/tcc-transaction/tree/master-1.2.x)
|
||||||
|
|
||||||
如果你想 用dubbo的他的还不行有点错误请下载: (使用请先参考TCC文档)
|
如果你想 用dubbo的他的还不行有点错误请下载: (使用请先参考TCC文档)
|
||||||
|
|
||||||
[![地址]()](https://github.com/qiurunze123/tcc-dubbo)
|
[![地址](tcc-dubbo地址)](https://github.com/qiurunze123/tcc-dubbo)
|
||||||
|
|
||||||
效果图:
|
效果图:
|
||||||
|
|
||||||
![效果图](https://raw.githubusercontent.com/qiurunze123/imageall/master/tcc.gif)
|
![效果图](https://raw.githubusercontent.com/qiurunze123/imageall/master/tcc.gif)
|
||||||
|
|
||||||
|
|
||||||
1、tcc-transaction-dubbo
|
|_tcc-transaction-dubbo|
|
||||||
1.1 字节码代理 -> 创建接口的代理对象
|
|_1 字节码代理 -> 创建接口的代理对象
|
||||||
1.2 DubboTransactionContextEditor -> TRANSACTION_CONTEXT[标识事务状态]
|
|_2 DubboTransactionContextEditor -> TRANSACTION_CONTEXT[标识事务状态]利用Dubbo的隐式参数来传递关键的非业务数据
|
||||||
利用Dubbo的隐式参数来传递关键的非业务数据
|
|_tcc-transaction-spring|
|
||||||
|
|_封装了一些关键的Spring组件
|
||||||
|
|
||||||
|
|_questions|
|
||||||
2、tcc-transaction-spring
|
|_1、什么时候生成的TRANSACTION_CONTEXT隐式参数
|
||||||
封装了一些关键的Spring组件
|
|_2、如何判断一个大的事务下,都有哪些小的事务
|
||||||
|
|_3、为什么要有@Compensable注解
|
||||||
|
|_4、两个拦截器都没有处理Confirm和Cancel
|
||||||
|
|
||||||
3、问题:
|
|_基础概念 |
|
||||||
1、什么时候生成的TRANSACTION_CONTEXT隐式参数
|
|_主事务和分支事务【事务参与者】
|
||||||
2、如何判断一个大的事务下,都有哪些小的事务
|
|_事务拦截器作用:[Spring AOP的基本概念要熟练掌握]|_1 CompensableTransactionInterceptor
|
||||||
3、为什么要有@Compensable注解
|
|_ 将事务区分为Root事务和分支事务
|
||||||
4、两个拦截器都没有处理Confirm和Cancel
|
|_不断的修改数据库内的状态【初始化事务,修改事务状态】
|
||||||
|
|_注册和清除事务管理器中队列内容
|
||||||
4、基础概念:
|
|_ResourceCoordinatorInterceptor
|
||||||
主事务和分支事务【事务参与者】
|
|_主要处理try阶段的事情
|
||||||
|
|_在try阶段,就将所有的"资源"封装完成并交给事务管理器
|
||||||
5、事务拦截器作用:[Spring AOP的基本概念要熟练掌握]
|
|_资源 -- 事务资源
|
||||||
5.1 CompensableTransactionInterceptor
|
事务的参与者
|
||||||
5.1.1 将事务区分为Root事务和分支事务
|
|_1.Confirm上下文
|
||||||
5.1.2 不断的修改数据库内的状态【初始化事务,修改事务状态】
|
|_2.Cancel上下文
|
||||||
5.1.3 注册和清除事务管理器中队列内容
|
|_3.分支事务信息
|
||||||
|
|_4.事务管理器修改数据库状态
|
||||||
5.2 ResourceCoordinatorInterceptor
|
|
||||||
5.2.1 主要处理try阶段的事情
|
|_ 调用目标对象 -- order red cap
|
||||||
5.2.2 在try阶段,就将所有的"资源"封装完成并交给事务管理器
|
|
||||||
5.2.3 资源 -》 事务资源
|
|_小结
|
||||||
事务的参与者
|
|_ 1.事务的相关信息【全局事务编号,乐观锁版本等要持久化存储】
|
||||||
1、Confirm上下文
|
|_ 2.资源:* TCC 【try-confirm-cancel】 try核心点: 预留业务资源 把事务数据资源存入库中
|
||||||
2、Cancel上下文
|
|_ 3 流程:
|
||||||
3、分支事务信息
|
|_注册和初始化事务
|
||||||
5.2.4 事务管理器修改数据库状态
|
|_组织事务参与者
|
||||||
5.3 调用目标对象 -> order red cap
|
|_执行目标try方法
|
||||||
|
|_执行confirm和cancel方法
|
||||||
6、小结:
|
|
||||||
6.1 事务的相关信息【全局事务编号,乐观锁版本等要持久化存储】
|
|
||||||
6.2 资源:*
|
|
||||||
TCC 【try-confirm-cancel】
|
|
||||||
try核心点: 预留业务资源
|
|
||||||
把事务数据资源存入库中
|
|
||||||
6.3 流程:
|
|
||||||
6.3.1 注册和初始化事务 -> 组织事务参与者 -> 执行目标try方法 -> 执行confirm和cancel方法
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user