Seata
文章平均质量分 84
我神级欧文
这个作者很懒,什么都没留下…
展开
-
深入探讨Seata RPC模块的设计与实现
该类是整个RPC设计的一个顶层抽象类,其主要实现了同步发送与异步发送的功能,此时在这里还没区分客户端与服务端,因为无论是客户端还是服务端,双方都应该有发送数据的功能该类继承于AbstractNettyRemoting,是Netty客户端的抽象基类,基于AbstractNettyRemoting的发送数据能力之上,实现了通过不同的负载均衡策略去选择服务端地址以及批量发送的功能/*** Netty客户端处理接收消息的handler*/@Sharable@Overrideif (!return;原创 2023-06-30 15:04:57 · 749 阅读 · 0 评论 -
Seata AT异常流程场景梳理
此时回滚重试定时器就能查询出该全局事务,然后对该全局事务下的所有分支事务进行回滚,如果回滚失败,就把状态改为TimeoutRollbackRetrying,然后继续重试回滚,在完成回滚之前全局锁不会被释放。分支事务在执行完业务sql以及undoLog的sql之后,会去往TC注册分支事务信息,同时去获取全局锁,然后再提交本地事务,最后提交完事务之后上报提交结果给TC。通过全局锁的超时机制解决,线程B在等待全局锁超时后会主动释放全局锁,然后进而释放本地锁。原创 2023-06-29 18:25:06 · 591 阅读 · 0 评论 -
Seata AT模式是如何控制数据源代理的?
在seata-spring-boot-starter模块中,SeataDataSourceAutoConfiguration这个自动配置类往spring容器中加入了SeataAutoDataSourceProxyCreator这个组件 点进去一看可以看到SeataAutoDataSourceProxyCreator继承了spring的AbstractAutoProxyCreator,熟悉spring的同学可能知道AbstractAutoProxyCreator这个组件,该组件实际上是一个BeanPos原创 2023-06-29 18:07:36 · 700 阅读 · 0 评论