CAP 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标: Consistency(一致性) Availability(可用性) Partitiontolerance (分区容错性) Eric Brewer 说,分布式系统无法同时
CAP
1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标:
Consistency(一致性)
Availability(可用性)
Partition tolerance (分区容错性)
Eric Brewer 说,分布式系统无法同时满足这三个指标。
这个结论就叫做 CAP 定理
Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致
Availability (可用性):用户访问集群中的任意健康节点,必须能得到响应,而不是超时或拒绝
Partition(分区):因为网络故障或其它原因导致分布式系统中的部分节点与其它节点失去连接,形成独立分区。
Tolerance(容错):在集群出现分区时,整个系统也要持续对外提供服务
结论:
分布式系统节点之间肯定是需要网络连接的,分区(P)是必然存在的
如果保证访问的高可用性(A),可以持续对外提供服务,但不能保证数据的强一致 性- -> AP
如果保证访问的数据强一致性(C),就要放弃高可用性 --> CP
BASE
BASE理论是对CAP的一种解决思路,包含三个思想:
Basically Available (基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
Soft State(软状态):在一定时间内,允许出现中间状态,比如临时的不一致状态。
Eventually Consistent(最终一致性):虽然无法保证强一致性,但是在软状态结束后,最终达到数据一致。
解决分布式事务的思想和模型:
最终一致思想:各分支事务分别执行并提交,如果有不一致的情况,再想办法恢复数据(AP)
强一致思想:各分支事务执行完业务不要提交,等待彼此结果。而后统一提交或回滚(CP)