CAP理论
Consistency(一致性)
即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致。
对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。
从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。
Availability(可用性)
即服务一直可用,而且是正常响应时间。系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。
Partition Tolerance(分区容错性)
即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转的整体。比如现在的分布式系统中有某一个或者几个机器宕机了,而剩下的机器还能够正常运转满足系统需求,对于用户而言并没有什么体验上的影响。
CP和AP:分区容错性是必须保证的,当发生网络分区的时候,如果要继续服务,那么强一致性和可用性只能二选一
BASE理论
BASE理论值的是基本可用 Basically Available,软状态 Soft State ,最终一致性 Eventual Consistency,核心思想是即使无法做到强一致性,但应该采用合适的方法保证最终一致性。
BA:Basically Available 基本可用,分布式系统再出现故障的时候,允许损失部分可用性,即保证核心可用。
S:Soft State 软状态,允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
E:Eventual Consistency 最终一致性,系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
BASRE理论本质上是对CAP理论的延伸,是对CAP中AP方案的一个补充。