阿里开源分布式事务解决方案 Fescar 全解析
广为人知的阿里分布式事务解决方案:GTS(Global Transaction Service),已正式推出开源版本,取名为“Fescar”,希望帮助业界解决微服务架构下的分布式事务问题,今天我们一起来深入了解。
阿里分布式事务框架GTS开源啦!
就在9号这天,阿里分布式事务框架GTS开源了一个免费社区版Fescar,看到了这个消息内心非常的激动!在微服务系统中,分布式事务一直是痛点,也是难点。社区里也有一些开源的分布式解决方案的框架,比如ByteTCC、LCN,但是这些框架没有一个权威的组织在维护,或多或少大家都有点不敢用。
源码|详解分布式事务之 Seata-Client 原理及流程
本文主要基于 spring cloud + spring jpa + spring cloud alibaba fescar + mysql + seata 的结构,搭建一个分布式系统的 demo,通过 seata 的 debug 日志和源代码,从 client 端(RM、TM)的角度分析其工作流程及原理。
Fescar - RM Proxy创建过程
开篇
这篇文章的主要是目的是解释清楚DataSourceProxy、ConnectionProxy、StatementProxy几个Proxy代理各自的实现以及相互之间的联系。
希望通过这篇文章,能够解释清楚一个核心问题,就是上述的三个Proxy是如何实现代理并同时保证和原有的JDBC的数据访问逻辑保持不变。
Fescar - RM实现原理介绍
开篇
这个系列开始介绍Fescar当中的RM(Resource Manager),RM负责控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚。
Fescar RM介绍
说明:
RM负责注册分支事务并上报分支事务状态。
Fescar example解析 - GlobalTransaction
开篇
这篇文章是接着Fescar example解析 - TM流程的下一步分析,主要是对TM的处理逻辑的进一步分析,理清楚TM(Transaction Manager )的处理步骤以及代码调用链。
这篇文章的结论是TM执行事务操作包括begin/commit/rollback都是通过DefaultTransactionManager类来实现,实现形式是TM和TC进行网络通信,在整个TM->TC的过程中TM担当了Client端的角色,TC担当了Server端的角色。