AT如何实现隔离读的?

Seata AT 模式的脏读是指在全局事务未提交前,被其它业务读到已提交的分支事务的数据,本质上是Seata默认的全局事务是读未提交。

@GlobalLock 注解 + select for update +Transactional可以做到,看看源码是如何实现的?

例如我执行了select * from t_order  where id = 169 for update  这个sql

由于使用了GlobalLock 注解,GlobalTransactionalInterceptor就会起作用,我们看看都做了什么?


设置全局锁标识

select for update使用这个SelectForUpdateExecutor


设置锁key

事务提交时

向tc发起请求

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

推荐阅读更多精彩内容