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

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

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



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


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


这里设置非自动提交 

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


这个方法主要生成undo log

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


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


你可能感兴趣的:(rm端如何实现数据源代理,业务执行流程)