seata初体验

Seata 是什么?

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

优点

对业务无侵入

Seata术语

  • TC (Transaction Coordinator) - 事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。
  • TM (Transaction Manager) - 事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务
  • RM (Resource Manager) - 资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

在这里插入图片描述

实现流程

  • 获取事务的控制权
手写Java 类,实现Connection 接口,通过对Connection 接口的切面,手动替换为自己的手写实现类。
  • 事务的发起(TM)(服务调用链的起始方)
1:创建事务组,生成事务组ID(groupId)(xid)
2:创建分支事务(分支事务id,分支事务type:commit/rollback,所属组别)
  分支事务的type依赖于切面执行成功与否,成功则为commit
3:注册分支事务
4:提交全局事务
  tm根据分支事务的状态,决定组事务的成功与否,将此状态同步到子事务,完成最后的提交或者回滚,完成分布式事务的操作

猜你喜欢

转载自blog.csdn.net/weixin_44971379/article/details/120897251