分布式事务的BASE理论
相关历史文章(阅读本文之前,您可能需要先看下之前的系列👇)
前言
CAP理论告诉我们分布式系统最多只能满足CAP中的两项,其中AP在实际应用中较多。AP舍弃一致性,保证可用性和分区容忍性,但在实际生产中很多场景都要实现一致性,比如前面举的例子主数据库向从数据库同步数据,即使不要一致性,但是最终也要将数据同步成功来确保数据一致,这种一致性和CAP的一致性不同。
CAP中的一致要求在任何时间查询每个节点数据都必须一致,它强调的是强一致性,但是最终一致性是允许在一段时间内每个节点的数据不一致,但是经过一段时间每个节点的数据必须一致,它强调的是最终数据的一致性。
一、BASE理论
BASE是Basically Avaliable(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。
BASE理论是对CAP中AP的一个扩展,通过牺牲强一致性来获得可用性,当出现故障部分不可用时需要确保核心功能可用,允许数据在一段时间内是不一致的,但最终达到一致状态。满足BASE理论的事务,我们称之为“柔性事务”。
1.1 BA – 基本可用
分布式系统在出现故障时,允许损失部分可用功能,保证核心功能可用。举个例子:电商网站交易付款出问题了,商品依然可以正常浏览。
1.2 S – 软状态
由于不要求强一致性,所以BASE允许系统中存在中间状态(也叫软状态),这个状态不影响系统可用性,如订单的“支付中”、“数据同步中”等状态,待数据最终一致后状态改为“成功”状态。
1.3 E – 最终一致性
经过一段时间,所有节点数据都会达到一致。如订单中的“支付中”状态,最终会变成“支付成功”或者“支付失败”,使订单状态与实际交易结果达成一致,但需要一定时间的延迟和等待。
分布式事务解决方案「手写代码」:http://t.cn/AieNUirK
点击「阅读原文」,进入领取优惠券!快人一步,快速学习分布式事务!