关于nosql的cap"理论"

版权声明:本文为博主原创文章,转载请注明作者和出处。 https://blog.csdn.net/xinqing5130/article/details/79100468

声明下,cap理论有点模糊,理解的可能不到位。

——————————————————————————————————————————————

CAP是相对传统的ACID数据库事务特性提出来的。

CAP分别是三个概念,C-consistency一致性、A-available可用性、P-partition tolerance分区容错性(就是分区)。

CAP定律说的是在一个分布式计算机系统中,一致性,可用性和分区容错性这三种保证无法同时得到满足,最多满足两个。

——CA,其实就是指传统数据库;

——AP,就是牺牲一致性,保证可用性和分区容错性,大多数nosql数据库都是此类。NoSQL系统通常注重性能和扩展性,而非事务机制

——CP,我们说大多数nosql是AP类型的,但是我们常用的nosql数据库,像redis和mongodb又是CP类型的。为了保证一致性牺牲了可用性。以MongoDB为例,一般都是很多节点协同工作的,即满足分区容错性;同时也有一套完整的数据复制机制,虽然不是严格一致性,但是能保证最终一致性。主节点和子节点之间数据有一定概率(网络延迟)存在不一致,但是能最终一致,即满足C;在网络分区的情况下,如果主节点挂了,那么当服务再次可用之前,要做的事情还是很多的,比如选举新的主节点,节点间数据同步,数据回滚等等,这些都降低服务的可用性,即降低了A。

———————————————————————————————————————————————

根据CAP理论,又引出了BASE理论:

——BA,base available,基本可用;电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。

——S,soft state,软状态;软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。

——E,eventually consistency,最终一致性。最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。

在分布式系统中,总而言之,就是牺牲强一致性,来活得高可用性,最终实现一致性。

猜你喜欢

转载自blog.csdn.net/xinqing5130/article/details/79100468
今日推荐