springCloudAlibaba之分布式事务组件---seata

Seata

Sea学习

事务:事务是访问数据库并更新数据库中各项数据的一个程序执行单元。在关系数据库中,一个事务由一组或多组SQL语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。例如更新商品的接口,这就是一个事务,事务是对程序而言的。

  • 原子性:事务是一个不可分割的工作单元,事务中包括的诸多操作要么都做要么都不做。
  • 一致性:保持数据的一致
  • 隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的并发执行的各个事务之间不能互相干扰。隔离性又分为四个级别,来保证事务之间的隔离性:读未提交、读已提交、可重复读、串行化(事务串行执行,不会产生并发问题)
  • 持久性:一个事务执行并提交后,就持久到数据库
    本地事务:大多数场景下,我们的应用都只需要操作单一的数据库,这种情况下的事务称之为本地事务。本地事务的ACID特性由数据库直接支持。

分布式事务

两种分布式事务场景:1、同一服务不同数据库;2、同一数据库不同服务;此时都会产生分布式事务的问题。此时用本地数据库事务是无法支持分布式事务的。此时用Seata处理分布式事务问题

Seata

seata的三大角色
在seata的架构中,一共有三个角色:

  • TC:事务协调者
  • TM:事务管理器
  • RM:资源管理器
    管理分支事务处理的资源,与TC交谈以注册分支事务的状态,并驱动分支事务提交或回滚。其中,TC为单独部署的server服务端,TM和RM为嵌入到应用中的client客户端。

二阶段提交协议

常见的分布式事务解决方案:

  • seata阿里分布式事务框架
  • 消息队列
  • saga
  • XA
    他们都有一个共同点,都是遵循二阶段协议(2PC)。两阶段是指完成整个分布式事务,划分成两个步骤完成。
  • 1、准备阶段
  • 在这个阶段,事务的协调者会向所有涉及的数据库或者资源管理器发送准备请求。
  • 每个数据库或者资源管理器收到准备请求后,会执行相应的操作,并且记录准备状态。如果准备成功,就向协调者发送准备就绪的ask。
  • 协调者等待所有参与者都发送准备就绪的信号,如果有任何一个参与者未能准备就绪或者出现了错误,协调者将会发送回滚请求给所有参与者。
  • 提交阶段
  • 如果所有参与者都准备就绪,协调者会向他们发送提交请求。
  • 参与者接收到提交请求后,会正式提交事务,并且释放相关资源。
  • 如果有任何一个参与者未能接收到请求或者出现了错误,协调者将会发送回滚请求给所有参与者。
  • 图例
  • 第一阶段

  • 第二阶段

就像是军训一样,准备阶段:教官让所有同学都立正站好,所有同学都得对齐站好,谁没有站好,全部同学都得重新立正,直到所有同学都准备好,然后,训练阶段:同学们都站一排齐步走,只要有一个没走齐的就重新开始;(👴已经尽力去解释了,我相信即使没有学过计算机的应该也知道这玩意是什么了,嘿嘿);看着是不是毫无压力,

AT模式

  • 一阶段
    befrore image:将要更新的数据查询出来。afer image:事务执行后,将执行完的数据查出来

  • 二阶段

  • 二阶段提交
    因为一阶段已经完成了提交动作,所以二阶段如果没有异常,则直接删除before image、after image、行锁

  • 二阶段回滚
    根据before image拿到逆向sql回滚数据,回滚完成后删除befor image、after image、行锁

相关推荐
小股虫16 小时前
分布式事务:在增长中台,我们如何做到“发出去的内容”和“记录的数据”不打架?
分布式·微服务·云原生·架构·团队建设·方法论
是三好16 小时前
分布式事务seata
java·分布式·seata
optimistic_chen17 小时前
【Redis 系列】常用数据结构---Hash类型
linux·数据结构·redis·分布式·哈希算法
yuankunliu17 小时前
【分布式事务】4、分布式事务Seata的高级应用详解
分布式
java1234_小锋17 小时前
ZooKeeper集群中服务器之间是怎样通信的?
分布式·zookeeper·云原生
昌sit!19 小时前
hadoop集群搭建
大数据·hadoop·分布式
左灯右行的爱情1 天前
Kafka专辑- 消息队列是什么
分布式·kafka
小股虫1 天前
让系统“杀不死”:同步与异步场景下的弹性设计模式手册
分布式·微服务·设计模式·架构·团队建设·方法论
前端世界1 天前
鸿蒙分布式权限管理实战指南:架构原理 + 可运行 Demo
分布式·架构·harmonyos
西***63471 天前
「技术筑基 医疗提质」—— 分布式视频通讯系统在医疗领域的应用解析
分布式·音视频