分布式事务

本文介绍了事务的ACID特性,探讨了分布式环境中的CAP定律和BASE理论,重点讲解了Seata分布式事务管理器的2PC、AT和XA模式,以及TCC和SEGA模式的优缺点。
摘要由CSDN通过智能技术生成

本地事务

事务ACID

atomicity 原子性:事务时最小的执行单位,其操作要么全部完成,要么全部不起作用

consistency 一致性:执行事务前后数据将保持一致性,不同事务对一个数据的读取结果是一样的

isolation 隔离性:并发时,一个用户的事务不会被其他事务所干扰,各自独立

durability 持久性:一个事务提交后,所产生的效果是持久性的,即使数据库发生故障仍然没有影响

分布式事务

CAP定律:因为分布式的原因,分区容错性一定存在,所以只能在ac中进行取舍

consistency 一致性:执行事务前后数据将保持一致性,不同事务对一个数据的读取结果是一样的

atomicity 原子性:事务时最小的执行单位,其操作要么全部完成,要么全部不起作用

p 分区容错性

BASE理论:在无法达到强一致性的情况下,根据业务情况,采用适当的办法达到最终一致性

基本可用:系统出现不可预估故障时,容许部分不可用

软状态:数据可以存在中间状态,即不同数据副本之间的数据同步可以出现延迟

最终一致性:不同数据副本之间的数据最终达到一致

Seata(@GloablTransactional)

TC:事务协调者 即seata服务端

TM:事务管理者

RM:资源管理者 即事务参与者

核心:2PC理论(俩阶段提交)

准备阶段:事务管理器发送prepare消息,参与者在本地进行事务执行,写入uodo/redo日志,但并不提交

提交阶段:如果事务管理器收到参与者的失败消息,则回滚,如果成功,则参与者提交事务

自动补偿,不需要用户自定义补偿:

AT模式(用户只关注SQL语句)

一阶段:Seata拦截sql进行解析,然后在数据更新前,将数据写入undo日志,在执行SQL成功后,将更新的数据写入redo日志,在本地数据库事务内完成

二阶段:在本地事务完成后,执行全局提交,如果失败,则利用undo日志执行回滚

XA模式:不存在中间数据,强一致性

需要用户自定义补偿

TCC模式:侵入性大 需要自己手动去进行回滚 ,但是没有锁,性能强

SEGA模式:对于封闭式的老系统,或者没有介入分布式事务的系统

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值