-
-
Notifications
You must be signed in to change notification settings - Fork 901
Developer Guide
liuyangming edited this page Sep 7, 2018
·
11 revisions

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


- 业务子系统发起业务请求时,Spring容器使用事务拦截器拦截该业务请求,在转发业务请求之前,开启全局事务,并在转发业务请求之后完成(提交/回滚)全局事务。
- 全局事务回滚时,会回调当前事务中业务逻辑的补偿逻辑(前提是该业务逻辑的操作已经生效,即DB事务已经提交)。

- 业务子系统发起业务请求时,Spring容器使用事务拦截器拦截该业务请求,在转发业务请求之前,开启本地事务,并在转发业务请求之后完成(提交/回滚)本地事务。

- 事务管理器发起补偿请求时,Spring容器使用事务拦截器拦截该补偿请求,在转发补偿请求之前,开启本地事务,并在转发补偿请求之后完成(提交/回滚)本地事务。
自定义的扩展类均需要注册到org.bytesoft.bytetcc.TransactionBeanFactoryImpl中(具体可参考bytetcc.xml中默认实现类的配置)。
org.bytesoft.compensable.logging.CompensableLogger接口是ByteTCC的事务日志管理接口,ByteTCC事务管理器通过该接口记录、读取活动事务的日志信息,该接口的默认实现为org.bytesoft.bytetcc.logging.SampleCompensableLogger。用户也可以根据需求自定义该接口的实现,扩展事务日志管理功能。
org.bytesoft.transaction.supports.rpc.TransactionInterceptor接口是ByteTCC用于在远程调用时拦截RPC请求/响应的处理接口,该接口用于为service的远程调用传播事务上下文等用途,默认实现为org.bytesoft.bytetcc.supports.rpc.CompensableInterceptorImpl。用户若需要新增RPC框架的支持时,需要自定义本接口。
注意:不同的RPC框架,根据其特性不同,需要定制的内容可能会相差较大。
If you've found byteTCC useful, and would like to support future development of byteTCC, please consider donating. Any amount is appreciated.
WeiXin
resources/donation/liuyangming@weixin.png
Alipay