分布式事务(2PC/3PC/TCC 最终一致性详解)

分布式事务的常见解决方案包括2PC、3PC和TCC,以及基于MQ的最终一致性策略。2PC和3PC在确保数据一致性的同时存在性能和单点故障问题。TCC通过尝试、确认和取消操作提供了一种柔性事务解决方案。基于MQ的最终一致性允许短暂的数据不一致,通过消息确认和持久化保证可靠性,但需要处理幂等性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在分布式系统中,我们一般会根据业务对服务进行划分,这就会存在一些服务间的调用关系,所以普通的本地事务是满足不了我们的要求了,需要引入分布式事务来实现我们的一致性的要求。

这里对事务进行一个简单的介绍:

同学A给同学B转250块钱,系统首先从同学A的银行卡扣除250块钱,如果上述这个步骤成功了,但是系统往同学B的银行卡上转250块钱的时候失败了,那么就会造成数据对不上的情况了。在这种情况下我们就需要引入事务,保证转钱这两步操作要么同时成功要么同时失败,成功的情况就是同学B银行卡也收到了钱,失败的情况是回滚把钱退回给A。

我们先从强一致性的场景说起,我们先了解一下 ACID 理论:

  • Atomicity:原子性(要么全部执行,要么全部都不执行)
  • Consistency:一致性(数据库只有一个状态,不存在未确定状态)
  • Isolation:隔离性(事务之间互不干扰)
  • Durability: 永久性(事务一旦提交,数据库记录永久不变)

分布式事务实现方案也比较多(比如两阶段提交、三阶段提交、TCC等),下面我们对它们进行一些简单的介绍

2PC:两阶段提交

从名字我们可以理解到,2PC就是有两个阶段,一个是准备阶段,一个是提交阶段

Prepare阶段:协调者发起提议,问大家是否接受,这个阶段做了除提交事务外的所有事情。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值