分布式事务的七种解决方案

本文深入探讨了分布式事务的原因、CAP定理、BASE理论,并详细介绍了两阶段提交(2PC)、三阶段提交(3PC)、补偿事务(TCC)等解决方案,阐述了它们的优缺点和适用场景,旨在帮助开发者选择合适的分布式事务策略。
摘要由CSDN通过智能技术生成

一、什么是分布式事务

分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。一个大的操作由 N 多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些操作,要么全部成功执行,要么全部不执行。

二、为什么会有分布式事务

举个例子:

转账是最经典的分布式事务场景,假设用户 A 发起一笔跨行转账给用户 B,银行系统首先扣掉用户 A 的钱,然后增加用户 B 账户中的余额。如果其中某个步骤失败,此时就有可能会出现两种异常情况:

  1. 用户 A 的账户扣款成功,用户 B 账户余额增加失败。
  2. 用户 A 的账户扣款失败,用户 B 账户余额增加成功。

实际上,两种情况都是不允许发生的,此时就需要事务来保证转账操作的成功。

单体应用中,只需要@Transactional就可以开启事务来保证整个操作的原子性。

但实际的应用架构中,不可能是单体的服务,如分布式微服务架构:

比如下单服务,扣库存服务等等,必须要保证不同服务状态结果的一致性,于是就出现了分布式事务。

三、分布式理论

CAP定理

在一个分布式系统中,以下三点特性无法同时满足:

一致性(C):
在分布式系统中的所有数据备份,「在同一时刻是否拥有同样的值」。(等同于所有节点访问同一份最新的数据副本)

可用性(A):
在集群中一部分节点「故障」后,集群整体「是否还能响应」客户端的读写请求。(对数据更新具备高可用性)

分区容错性(P):
即使出现「单个组件无法可用,操作依然可以完成」

具体地讲在分布式系统中,在任何数据库设计中,一个Web应用「至多只能同时支持上面的两个属性」。显然,任何横向扩展策略都要依赖于数据分区。因此,设计人员必须在一致性与可用性之间做出选择。

BASE 理论

分布式系统,往往追求的是可用性,它的重要程序比一致性要高,那么如何实现高可用性呢?

那就是 BASE 理论,它是用来对 CAP 定理进行进一步扩充的。BASE 理论指的是:

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值