
seata
文章平均质量分 83
王伟王胖胖
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
seata源码分析之-AT模式写隔离
seata源码分析之-AT模式写隔离AT模式写隔离AT模式读隔离AT模式写隔离当我们看到上面的图的时候可能不太明白这个具体是怎么做的,所以今天就来源码看下。首先是获取全局锁,那这个到底是什么锁呢,我们来看TA模式的ConnectionProxy的processGlobalTransactionCommit方法:注册的时候会去注册锁,其实有点像分布式锁,谁先注册了谁就占着了,然后其他的就要重试:其实这把锁哪里来的,就是在准备回滚日志的时候生成的,表名_主键ID:如果发现注册有锁冲突,说明已原创 2021-02-14 17:08:49 · 1016 阅读 · 1 评论 -
seata源码分析之-资源管理器详解2
seata源码分析之-资源管理器详解2事务消息处理器回滚消息处理器ResourceManagerXATCCResourceManager事务消息处理器上篇说了资源管理器有4种,那这些事务管理器是什么时候调用的,又是被什么事件驱动的呢,这次我们来看看事务消息处理器,也就是处理TC发来的事务消息,同样还是在RM初始化的时候创建的。貌似一样的套路:一样的SPI机制:对应的也是4种处理器,如果有TC的消息来了,就会调用DefaultRMHandler的handle去找出是哪种处理器,进行处理。原创 2021-02-13 22:21:51 · 459 阅读 · 0 评论 -
seata源码分析之-资源管理器详解1
seata源码分析之-资源管理器详解一资源管理器RMRMClient初始化资源管理器加载AT模式的DataSourceManagerXA模式的ResourceManagerXATCC模式的TCCResourceManagerSAGA模式的SagaResourceManager资源管理器RM前面将的大致的AT流程,但是一些细节的东西没讲,现在来说下比较重要的资源管理器,比如我们的AT,TCC,XA,SAGA模式下资源管理器具体是什么时候创建的,创建的是什么,又是怎么运作的。RMClient初始化资源管理原创 2021-02-13 22:21:26 · 397 阅读 · 0 评论 -
seata源码分析之-AT模式客户端分析4
seata源码分析之-AT模式客户端分析4ConnectionProxy之processGlobalTransactionCommitConnectionProxy之register注册分支事务ConnectionProxy之recognizeLockKeyConflictException处理锁冲突UndoLogManager之flushUndoLogs写入回滚日志ConnectionProxy之report报告事务状态ConnectionProxy之rollback异常回滚TC通知提交成功或者回滚Dat原创 2021-02-13 22:20:21 · 723 阅读 · 0 评论 -
seata源码分析之-AT模式客户端分析3
seata源码分析之-AT模式客户端分析3RM之StorageServiceDataSourceProxy数据源代理DataSourceProxy的一些方法处理RPC调用ExecuteTemplate的executeBaseTransactionalExecutor的executeLockRetryPolicy的execute镜像查询与回滚日志插入RM之StorageService前面我们分析了springcloud的例子中的TM的BusinessService的一些原理,接下来我们来找个RM说下,比如原创 2021-02-13 22:19:51 · 374 阅读 · 0 评论 -
seata源码分析之-AT模式客户端分析2
seata源码分析之-AT模式客户端分析2GlobalTransactionScanner的初始化initClient初始化TM和RM的客户端TmNettyRemotingClient初始化registerProcessor注册处理器init开启定时重连的任务和初始化netty组件TM进行GlobalTransactionalInterceptor进行方法拦截handleGlobalTransaction进行全局事务处理TransactionalTemplate的execute即TM要做的事Transact原创 2021-02-13 22:19:11 · 357 阅读 · 0 评论 -
seata源码分析之-AT模式客户端分析1
seata源码分析之-AT模式客户端分析1前言seata在springcloud下的客户端是怎么工作的寻找seata在springboot的自动配置官方的springcloud-eureka-seata例子前言放假了有时间详细的看下seata的相关原理,看官网的那些图和介绍可能并不是很明白相关的组件是怎么工作的,可能只是死记硬背,有什么TC,TM,RM,他们做了哪些工作的,可能对一些细节和为什么这么设计并不是很清楚,所以还是想去了解下,顺便看下大厂的代码和设计思路,最直接的方式就是结合官网的介绍,然后看原创 2021-02-13 22:18:43 · 420 阅读 · 0 评论