分布式事务介绍以及几种方式对比

本地事务:

AICD原则: 原子性、隔离性、一致性、持久性

分布式事务:

分布式系统环境下不同的服务之间通过网络远程协作完成事务称为分布式事务

分布式事务的使用场景

1.微服务之间通过远程调用完成事务操作(跨JVM进程产生分布式事务)
2.单体系统访问多个数据库实例(跨数据库实例产生分布式事务)
3.多服务访问同一个数据库实例

CAP理论

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决方案

2PC

在这里插入图片描述
Seata方案(基于2PC的基础向3PC演进)
在这里插入图片描述
在这里插入图片描述
1.分支事务第一阶段就已经提交
2.补偿回滚是基于undolog,不用自己写补偿操作

使用场景:
业务场景比较简单,事务嵌套不强的时候使用
缺点是补偿操作是针对数据库的固定的补偿行为

3PC

第一阶段两方都运行脚本但是不提交,此时断开连接,第二阶段,Tm通知两方运行脚本,第三阶段,TM查看两方是否都完成,如果有一方失败则叫另一方进行基于undolog的回滚

TCC

在这里插入图片描述
在这里插入图片描述
使用场景:
业务比较复杂,需要自定义补偿操作的时候
缺点是代码量较大

可靠消息最终一致性

在这里插入图片描述
解决方案一:
本地消息表方案
在这里插入图片描述
解决方案二:
RocketMQ事务消息方案
在这里插入图片描述
消费不成功会一直重试

使用场景:内部系统,需要1对1的时候

最大努力通知

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用场景:通知外部系统的时候,为了不暴露内部MQ,写一个接口给外部系统回调,可以1对多广播

解决方案对比

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值