写隔离
- 一阶段本地事务提交前,需要确保先拿到 全局锁(行级) 。
- 拿不到 全局锁 ,不能提交
本地事务
。 - 拿 全局锁 的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。
读隔离
在数据库本地事务隔离级别 读已提交(Read Committed) 或以上的基础上,Seata(AT 模式)的默认全局隔离级别是 读未提交(Read Uncommitted)【有可能读取到本地事务已提交但后面全局事务回滚的脏数据】 。
如果应用在特定场景下,必需要求全局的 读已提交 ,则通过SELECT FOR UPDATE
来实现。