1-fescar(seata)源码分析-server端

2019-02-19  本文已影响0人  致虑

1-fescar源码分析-server端

一.官网介绍(以下截取至自官网)

https://github.com/alibaba/fescar/wiki/%E6%A6%82%E8%A7%88

--

二、主要流程(模块)概要

1.服务启动,通过@GlobalTransactional执行到GlobalTransactionalInterceptor拦截器,进入对业务逻辑进行增强,执行TransactionalTemplate逻辑
2.TransactionalTemplate对全局事务的获取、执行业务逻辑、异常回滚、事务提交进行统筹,并同时通过服务的维持channel将每个步骤与server的netty进行交涉.
3.同时TransactionalTemplate在执行业务逻辑的同时,通过spring jdbc的覆盖,通过直接调用RM模块生成相关的备份及回滚脚本。
4.server接收到相关服务的消息后,触发相关的动作,并最终触发RM去进行数据库层面的操作。

--

三、(原理)源码分析

其实细看上面官网的介绍,基本能清楚fescar的大致思想。下面从源码角度出发一步一步的将流程以代码的形式读完。

3.1 demo
项目中存在官方的example模块,里面就模拟了上图的相关流程:先回到本节主题:server
3.2.TC server

到了netty的channel层了,SocketChannel就是netty本身的消息读写通道,一切消息交换由此追溯,即netty完成通信后触发了监听器逻辑,进而继续TC服务逻辑的处理。

惯用的netty服务启动方式,至此,TC Server服务启动OK,下面总结下。

--

四.TC Server服务端启动总结

--

五.未完待续。。。

后续分析主要还是根据example官方实例分为:全局事务的获取、事务逻辑执行、事务回滚、事务提交进行。
同时后续每一流程都紧密关联Server,因此还会频繁回到上叙server启动后,收到消息被触发的后续逻辑。

上一篇 下一篇

猜你喜欢

热点阅读