vlambda博客
学习文章列表

分布式事务的BASE理论


相关历史文章(阅读本文之前,您可能需要先看下之前的系列👇)

前言

         CAP理论告诉我们分布式系统最多只能满足CAP中的两项,其中AP在实际应用中较多。AP舍弃一致性,保证可用性和分区容忍性,但在实际生产中很多场景都要实现一致性,比如前面举的例子主数据库向从数据库同步数据,即使不要一致性,但是最终也要将数据同步成功来确保数据一致,这种一致性和CAP的一致性不同。

CAP中的一致要求在任何时间查询每个节点数据都必须一致,它强调的是强一致性,但是最终一致性是允许在一段时间内每个节点的数据不一致,但是经过一段时间每个节点的数据必须一致,它强调的是最终数据的一致性。

 

一、BASE理论

         BASEBasically Avaliable(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。

         BASE理论是对CAP中AP的一个扩展,通过牺牲强一致性来获得可用性,当出现故障部分不可用时需要确保核心功能可用,允许数据在一段时间内是不一致的,但最终达到一致状态。满足BASE理论的事务,我们称之为“柔性事务”。

 

1.1 BA – 基本可用

         分布式系统在出现故障时,允许损失部分可用功能,保证核心功能可用。举个例子:电商网站交易付款出问题了,商品依然可以正常浏览。

 

1.2 S – 软状态

         由于不要求强一致性,所以BASE允许系统中存在中间状态(也叫软状态),这个状态不影响系统可用性,如订单的“支付中”、“数据同步中”等状态,待数据最终一致后状态改为“成功”状态。

 

1.3 E – 最终一致性

         经过一段时间,所有节点数据都会达到一致。如订单中的“支付中”状态,最终会变成“支付成功”或者“支付失败”,使订单状态与实际交易结果达成一致,但需要一定时间的延迟和等待。

分布式事务解决方案「手写代码」:http://t.cn/AieNUirK


点击阅读原文进入领取优惠券快人一步,快速学习分布式事务!