分布式事务Seata的原理总结

一、分布式事务简介

分布式事务有各种实现方案,不过大体可分为两类,一种不需要关注事务分支与全局事务的交互过程。另一种是将逻辑拆分成三个部分准备、提交、回滚,分支事务加入全局事务。这两种在Seata里前者称为AT模式,后者称为MT模式。

二、内容

1.分布式事务数据库操作型

MySQL XA方案 是其中一种,这种的话是直接作用于数据库。
其中RM执行本地事务提交与回滚;TM是分布式事务核心管理。
缺点的话,一是不适用于微服务,二很明显由于每次操作不提交,最后导致数据未提交越来越多时候,性能就不是很好了。那么像Seata这种业务层面的解决就相对而已来说性能强大了很多。

2.Seata分布式事务详解

Seata分布式事务是业务层民的解决方案。
而且只依赖于单台数据的事务能力。
Seata包括三个role:
1> TC 事务协调,负责协调并驱动全局事务的提交与回滚
2> TM 控制全局事务边界,负责开启全局事务,决定全局事务的提交与回滚
3> RM 分支事务,负责分支注册,接收TC指令,驱动分支事务回滚与提交
自己理解后画了个菜鸟图,如下:

在这里插入图片描述

3.XA vs Seata AT

AT不需要XA协议,适配于微服务,XA事务性资源的锁都要保持到第二阶段 完成才释放,AT分本地锁和全局锁,本地锁由本地事务管理,全局锁由全局事务管理,在决议第二阶段全局提交时,全局锁马上可以释放。

结语

有些坑不得不踩,有些事不得不做,希望能通过分享互相进步,走过这段平凡的路。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锐rui3g

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值