SEATA
文章平均质量分 94
seata 源码解读分享,一起鉴赏优秀的设计。
赵润泽同学
这个作者很懒,什么都没留下…
展开
-
【SEATA源码分析】记一次 pr
一 . 导读为什么为想起来贡献 pr 呢?在写这个 pr 之前,研究了一个多月 seata 源码,看的多了手就痒了,恰好又看到了社区的 issues ,于是就动手了。二. pr 相关pr 内容:参与方回滚,地址。由参与方通知TC回滚,可以提前结束全局事务并释放锁,提高seata事务的吞吐量;至于发起方可以接收参与方抛出的约定异常,不再通知TC,直接结束。这里简单介绍一下现如今的做法,只有发...原创 2020-03-16 16:11:48 · 754 阅读 · 0 评论 -
【SEATA源码分析】 配置相关源码解析
一 . 导读在实例化的时候通过 ConfigurationFactory 获取后作为参数注入的,需要重启才能生效,而在使用时通过 ConfigurationFactory 获取的,配置改了就可以生效。但是 config模块 提供了 ConfigurationChangeListener#onChangeEvent 接口方法,实例化了的类,可以通过实现这个接口方法,监听动态变化的属性,如果检测到...原创 2020-01-10 22:11:55 · 682 阅读 · 1 评论 -
【SEATA源码分析】 core 模块源码解析
一 . 导读core 模块定义了事务的类型、状态,通用的行为,client 和 server 通信时的协议和消息模型,还有异常处理方式,编译、压缩类型方式,配置信息名称,环境context等,还基于 netty 封装了 rpc ,供客户端和服务端使用。按包顺序来分析一下 core 模块主要功能类:codec:定义了一个 codec 的工厂类,提供了一个方法,根据序列化类型来找对应的处理类。...原创 2019-12-14 15:34:15 · 1112 阅读 · 0 评论 -
【SEATA源码分析】 rm-datasource 模块源码解析
一 . 导读前几篇模块分析的时候说到,spring模块中的 GlobalTransactionScanner 实现了InitializingBean 这个接口类,重载 postProcessAfterInitialization() 方法,在这个方法中,判断被扫描的bean是否是 DataSource 类型,如果是,用 DataSourceProxy 替换。而 @GlobalTransact...原创 2019-12-02 23:27:36 · 982 阅读 · 0 评论 -
【SEATA源码分析】 tm 模块源码解析
一 .导读首先放一张tm模块的主要类关系图:从图中可以很明显的看出,模块暴露出去的类是 TransactionalTemplate ,模板类中找 GlobalTransactionalContext 类获取业务业务类,而业务类持有了一个 TrancationManagerHolder 类,即由 TransactionManager 的实现类封装成的单例持有类,holder 通过SPI的方式加...原创 2019-11-30 11:44:11 · 1188 阅读 · 0 评论 -
【SEATA源码分析】 tcc 模块源码解析
一 .导读上一篇讲到,Seata的spring模块对bean进行处理,当GlobalTransactionalScanner 扫描到TCC服务的 ‘reference’ 时,对其进行动态代理,即给bean织入对应事务模式的MethodInterceptor 的实现类。TCC的实现类就是TccActionInterceptor ,在实现类中,调用TCC模式的事务处理方法,TCC 模块 主要功能...原创 2019-11-24 23:11:49 · 1470 阅读 · 3 评论 -
【SEATA源码分析】spring 模块源码解析
一. 导读spring是java开发必备框架,类一般都是通过spring进行管理。那spring之外的框架,尤其是想使用spring代理的类的框架,如何借助spring的扩展方式来操作bean?这篇文章主要分析seata如何借助spring扩展点对代理的bean进行操作,最终生成自己的数据库代理bean和织入interceptor。二. Spring模块主要类解析这儿是spring模...原创 2019-11-21 10:41:24 · 1162 阅读 · 0 评论