提交 tcc

This commit is contained in:
qiurunze 2019-01-07 11:10:14 +08:00
parent a69c0b0959
commit fe38fc61e0

View File

@ -44,41 +44,42 @@
![效果图](https://raw.githubusercontent.com/qiurunze123/imageall/master/tcc.gif) ![效果图](https://raw.githubusercontent.com/qiurunze123/imageall/master/tcc.gif)
|_tcc-transaction-dubbo|
|_1 字节码代理 -> 创建接口的代理对象 |_tcc-transaction-dubbo|
|_2 DubboTransactionContextEditor -> TRANSACTION_CONTEXT[标识事务状态]利用Dubbo的隐式参数来传递关键的非业务数据 |_1 字节码代理 -> 创建接口的代理对象
|_tcc-transaction-spring| |_2 DubboTransactionContextEditor -> TRANSACTION_CONTEXT[标识事务状态]利用Dubbo的隐式参数来传递关键的非业务数据
|_封装了一些关键的Spring组件 |_tcc-transaction-spring|
|_封装了一些关键的Spring组件
|_questions|
|_1、什么时候生成的TRANSACTION_CONTEXT隐式参数 |_questions|
|_2、如何判断一个大的事务下都有哪些小的事务 |_1、什么时候生成的TRANSACTION_CONTEXT隐式参数
|_3、为什么要有@Compensable注解 |_2、如何判断一个大的事务下都有哪些小的事务
|_4、两个拦截器都没有处理Confirm和Cancel |_3、为什么要有@Compensable注解
|_4、两个拦截器都没有处理Confirm和Cancel
|_基础概念 |
|_主事务和分支事务【事务参与者】 |_基础概念 |
|_事务拦截器作用[Spring AOP的基本概念要熟练掌握]|_1 CompensableTransactionInterceptor |_主事务和分支事务【事务参与者】
|_ 将事务区分为Root事务和分支事务 |_事务拦截器作用[Spring AOP的基本概念要熟练掌握]|_1 CompensableTransactionInterceptor
|_不断的修改数据库内的状态【初始化事务修改事务状态】 |_ 将事务区分为Root事务和分支事务
|_注册和清除事务管理器中队列内容 |_不断的修改数据库内的状态【初始化事务修改事务状态】
|_ResourceCoordinatorInterceptor |_注册和清除事务管理器中队列内容
|_主要处理try阶段的事情 |_ResourceCoordinatorInterceptor
|_在try阶段就将所有的"资源"封装完成并交给事务管理器 |_主要处理try阶段的事情
|_资源 -- 事务资源 |_在try阶段就将所有的"资源"封装完成并交给事务管理器
事务的参与者 |_资源 -- 事务资源
|_1.Confirm上下文 事务的参与者
|_2.Cancel上下文 |_1.Confirm上下文
|_3.分支事务信息 |_2.Cancel上下文
|_4.事务管理器修改数据库状态 |_3.分支事务信息
|_4.事务管理器修改数据库状态
|_ 调用目标对象 -- order red cap
|_ 调用目标对象 -- order red cap
|_小结
|_ 1.事务的相关信息【全局事务编号,乐观锁版本等要持久化存储】 |_小结
|_ 2.资源:* TCC 【try-confirm-cancel】 try核心点 预留业务资源 把事务数据资源存入库中 |_ 1.事务的相关信息【全局事务编号,乐观锁版本等要持久化存储】
|_ 3 流程: |_ 2.资源:* TCC 【try-confirm-cancel】 try核心点 预留业务资源 把事务数据资源存入库中
|_注册和初始化事务 |_ 3 流程:
|_组织事务参与者 |_注册和初始化事务
|_执行目标try方法 |_组织事务参与者
|_执行confirm和cancel方法 |_执行目标try方法
|_执行confirm和cancel方法