A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、TCC流程简介     TCC机制下,事务管理模块是在服务A、服务B执行完毕后即刻提交其参与的DB事务。
而后,如果全局事务决定提交,则逐个调用服务A和服务B的confirm逻辑;如果全局事务决定回滚,
则逐个调用服务A和服务B的cancel逻辑(当然,confirm/cancel逻辑的执行中又会参与相应的DB事务)。
若发生上述宕机故障,则只需要根据全局事务当前状态,将服务A、服务B相应的confirm/cancel逻辑重新调用即可。
因confirm/cancel逻辑可能会被多次调用,因此,需要保证其幂等性。

目前基于TCC机制,对dubbo提供开箱即用支持的分布式事务管理器有ByteTCC,以下是该事务管理器的简介。
2、ByteTCC整体设计


组件说明:
  • TCC事务管理模块:实现JTA规范的TransactionManager,供Spring容器直接调用,负责Spring容器中声明式事务的commit、rollback、suspend、resume等管理操作;
  • TCC事务分支协调者:实现RemoteCoordinator接口。由RPC自定义拦截器(客户端)调度,提供远程事务分支管理接入入口;
  • 本地事务分支协调者:实现RemoteCoordinator接口。由TCC事务管理器调度,提供本地事务管理接入入口;
  • 本地事务管理模块:负责管理本节点中的本地事务管理;
  • 事务日志存取模块:负责事务日志的存储及读取;
  • 事务恢复处理模块:负责未完成事务的数据恢复、状态判定并向事务管理模块提供事务完成方向建议;
  • RPC模块:提供远程调用服务支持;ByteTCC通过其支持的自定义拦截器机制实现事务上下文的传播;


3、执行原理介绍



4、本地事务管理



5、全局事务管理


具体项目代码请自行在作者的GitHub账户上下载,链接地址为:https://github.com/liuyangming/ByteTCC



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马