知识点
base和cap都是分布式系统的理论,当我们搭建分布式事务方案时有指导作用。分布式系统设计方向、根据业务类型正确的技术选择(AP\CP)。
CAP
分布式系统有三个指标:
- Consistency 一致性
- Availability 可用性
- Partition tolerance 分区容错性
分布式系统无法同时满足三个指标,这个结论就叫做CAP定理。
CAP-Consistency
Consistency:用户访问分布式系统中的任意节点,得到的数据必须一致。
CAP-Availability
Availability: 用户访问集群中的任意健康节点,必须得到响应,而不是超时或拒绝
CAP-Partition tolerance
Partition:因为网络故障或者其他原因导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。 tolerance:在集群出现分区时,整个系统也要持续对外提供服务
结论
- 分布式系统节点之间肯定是需要网络连接的,分区(P)是必然存在的
- 如果保证访问的高可用性(A),可以持续对外提供服务,但不能保证数据的强一致性(AP)
- 如果保证访问的数据强一致性(C),就要放弃高可用性(CP)
BASE理论
BASE理论是对CAP的一种解决思路,包含三个思想:
- Basically Available(基本可用):分布式系统在出现故障时,允许损失部分可用性,即保证核心可用
- Soft State(软状态):在一定时间内,允许出现中间态,比如临时的不一致状态
- Eventually Consistent(最终一致性):虽然无法保证强一致性,但在软状态结束后,最终达到数据一致。
解释下CAP和BASE
- CAP定理是:一致性、可用性、分区容错性
- 分布式系统中节点是通过网络连接的,一定会出现分区问题
- 当出现分区问题,系统的一致性和可用性就无法同时满足
- BASE理论
- 基本可用
- 软状态
- 最终一致
- 解决分布式事务的思想和模型:
- 最终一致思想:各个分支事务分别执行并提交,如果有不一致的情况,在想办法恢复数据(AP)
- 强一致思想:各分支事务执行完业务不要提交,等待彼此结果,而后统一提交或回滚(CP)