1.CAP理论
consistency(一致性):
即对于更新操作并成功返回客户端后,所有节点在同一时间的数据完全一致。
对于客户端来说,一致性指的是并发访问的时候更新过的数据如何获取的问题。
从服务端来看,则是更新数据如何将数据复制分布到整个系统,以保证数据最终一致。
Availability(可用性)
即服务一直可用,而且是在正常时间内,系统能够很好为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。
Partition Tolerance(分区容错)
即分布式系统在遇到某节点或者网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。
分区容错性要求能够使应用虽然是一个分布式系统,但是看上去却好像是一个可以运转正常的整体。
比如现在的分布式系统中有某一个或者几个机器宕机了,其它剩下的机器依然能够正常运转满足系统的需求,对于用户而言没有什么影响。
CP和AP
分区容错是必须保证的,当发生网络分区的时候,如果要继续服务,那么强一致性和可用性只能是二选一,因为系统可用性和一致性在理论上是能够满足的,但是实现起来却不太现实,所以现实中只能保证CP或者AP
2. BASE理论
CAPl理论的一种妥协,由于CAP理论只能二取一,所有BASE理论就降低了发生分区容错时对可用性和一致性的要求。
BASE是Basically Available(基本可用) Soft state(软状态) Eventually consistent(最终一致性)
BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统实践的总结,是基于CAP定理逐步演化而来的。
BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点采用适当的方式来使系统达到最终一致性。
1.基本可用:允许可用性降低(可能响应延长,可能服务降级)
1.响应时间上的损失:正常情况下,处理用户请求需要0.2秒返回结果,但是由于系统出现故障,处理用户请求的时间变更为0.3秒。
2.系统功能上的损失:正常情况下,用户可以使用系统的全部功能,但是由于系统访问量突然剧增,系统的部分非核心功能无法使用。
软状态:指允许系统中的数据存在中间状态,并认为该中间状态不会影响整体可用性
数据同步允许一定时间的延迟。
最终一致性:节点数据同步可以存在延时,在经过一定时限之后,变为最终状态
系统中所有的数据,在经过一定的时间的同步之后,最后能够达到一个一致的状态,不要求实时。