分布式事务解决方案seata

事务

数据库事务:指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成
事务的四个特性:
原子性:事务作为一个整体被执行,要么全部执行要么都不执行。
一致性:事务确保数据库的状态,从一个一致状态转变成另一个一致状态
隔离性:多个事务并发执行时,互不影响
持久性:已提交的事务对数据库的修改应该永久保存在数据库中,事务结束后此操作不可逆转

Seata事务模式-AT模式

1597387281664.png
Transaction Coordinator (TC): 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚。
Transaction Manager (TM): 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议。
Resource Manager (RM): 控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚。
一个典型的分布式事务过程:

  1. TM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的 XID。
  2. XID 在微服务调用链路的上下文中传播。
  3. RM 向 TC 注册分支事务,将其纳入 XID 对应全局事务的管辖。
  4. TM 向 TC 发起针对 XID 的全局提交或回滚决议。
  5. TC 调度 XID 下管辖的全部分支事务完成提交或回滚请求。

AT模式使用前提:

  • 基于支持本地 ACID 事务的关系型数据库。
  • Java 应用,通过 JDBC 访问数据库。