- 分布式事务存在两大理论依据:CAP 定理和 BASE 理论
1.CAP 定理
- CAP 定理是指在一个分布式系统中 Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),最多同时满足其中两个,三者不可兼得。
1.1 一致性(C)
1.2 可用性(A)
- 在集群中一部分节点出现故障后,整个集群是否还能响应客户端请求。
1.3 分区容错性(P)
- 以实际效果而言,分区相当于对操作的时限要求。如果系统不能在一定时限内达到数据一致性,就意味着发生了分区的情况,此时就必须在 A 和 C 中做选择。
2.BASE 理论
- 是指 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)三个短语的缩写。
- BASE 理论是对 CAP 中一致性和可用性权衡的结果,是基于 CAP 演化而来的。
- BASE 理论核心思想:即使无法做到强一致性,每个应用都可以根据自身业务特点,采用适当的方式达到最终一致性。
2.1 基本可用(BA)
- 是指在分布式系统中出现不可知故障的时候,允许损失部分可用性。此处要注意:损失部分可用性,不代表整个系统不可用
- 例如:
1、 可以增加响应时间由之前0.5秒,在出现故障的时候变成1~2秒;
2、 由于一些特殊原因,使网站访问流量激增,为了保证整个系统的稳定性,部分访问者可能被引导到降级页面中;
2.2 软状态(S)
- 是指系统中数据允许存在中间状态(软状态),并认为这个状态是不影响系统的可用性的。通俗解释:允许分布式节点之间存在同步延迟
- 例如:
在 Eureka 集群中数据同步时就存在软状态
2.3 最终一致性
- 允许整个系统中数据在经过一定时间后,最终能达到整个系统的一致性。但是这个时间绝对不可以过长
- 强一致性要求系统接收请求后,整个系统必须达到一致性效果,才会响应结果
- 最终一致性是弱一致性的特例。满足最终一致性的系统在响应给用户结果时整个系统可能是没有达到一致性的,但是最终一定会达到一致性效果的