seata

seata是一个分布式事务中间件

三大角色

  • TC:事务协调器,维护全局和分支的事务,驱动提交和回滚
  • TM:事务管理器,定义全局事务的范围,开始、提交、回滚全局事务
  • RM:资源管理器,管理分支事务处理的资源,以及分支的事务的提交、注册、回滚

事务提交过程

image-20250304165002935
  1. TM向TC发起全局事务创建,TC返回XID
  2. TM调用业务方法,RM向TC注册分支事务
  3. RM执行数据库操作并生成undo log,并提交分支事务
  4. 业务执行完成后,TM向TC提交全局提交或回滚请求
  5. TC收到请求后,通知RM执行提交或者回滚请求
  6. RM执行提交或回滚请求,并将结果通知TC
  7. TC记录事务状态为提交或者回滚完成

AT模式

自动代理数据库操作,在事务提交前生成回滚日志undo log,以便在回滚时通过undo log恢复数据