rm端如何实现数据源代理,业务执行流程

继承AbstractAutoProxyCreator,spring自动对Datasource实现代理,当然你也可以手动代理

我们看看SeataAutoDataSourceProxyAdvice,如果对DataSource的操作,都转换成对DataSourceProxy的操作,shardingjdbc也是通过自定义ShardingDataSource实现的



这里执行insert语句,适配出MySQLInsertExecutor


这里主要set了xid和全局锁标识


这里设置非自动提交 

我们先看看executeAutoCommitFalse这个方法,执行业务sql


这个方法主要生成undo log

这个processGlobalTransactionCommit方法,主要做两件事,一是向tc注册分支事务,二是提交业务sql和undo sql。


我们看下注册分支事务的大概流程


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容