Java笔记之Seata

Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。

Seata特色功能:

      微服务框架支持

      AT模式

      TCC模式

      SAGA模式

      XA模式

      高可用

Seata中的角色:

       TC:事务协调者,维护全局事务和分支事务的状态,推进事务两阶段处理。

       TM:事务管理器,与TC交互,用于开启、提交、回滚全局事务。

       RM:资源管理器,与TC交互,负责资源相关的处理,包括分支事务的注册与状态上报。

Seata处理分布式事务的主要流程:

1、TM开启全局事务

2、事务参与者通过RM与资源交互,并注册分支事务

3、事务参与者在完成资源操作后,上报分支事务状态

4、TM结束全局事务,事务一阶段结束

5、TC推进事务二阶段操作

 

AT模式两阶段提交:

      一阶段处理:首先Seata会先拦截业务SQL,解析SQL语句的定义,提取表元数据,找到SQL语句要更新的业务数据。其次,在业务数据被更新前将其保存成前镜像。然后,在执行SQL语句更新业务数据,在业务数据更新后,将其保存成后镜像,并生成seata事务锁数据,构建事务日志并且插入事务日志表。

       二阶段提交:如果全局事务是提交状态,则TC会先进行放锁操作,然后释放各个分支事务在一阶段加的全局锁,并推进二阶段提交。RM在接收到分支事务二阶段提交指令后,只需要删除保存的事务日志数据,完成数据清理即可。为了提升性能,RM会立即返回TC处理成功,并通过异步线程批量删除在二阶段中提交的分支事务的日志数据。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值