实践Seata之AT

写隔离

  • 一阶段本地事务提交前,需要确保先拿到 全局锁(行级)
  • 拿不到 全局锁 ,不能提交本地事务
  • 全局锁 的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。

读隔离

在数据库本地事务隔离级别 读已提交(Read Committed) 或以上的基础上,Seata(AT 模式)的默认全局隔离级别是 读未提交(Read Uncommitted)【有可能读取到本地事务已提交但后面全局事务回滚的脏数据】 。

如果应用在特定场景下,必需要求全局的 读已提交 ,则通过SELECT FOR UPDATE来实现。