CAP理论

简介:数据库

      在理论计算机科学中,CAP定理(CAP theorem),又被称做布鲁尔定理(Brewer’s theorem),理论的核心是:一个分布式系统不可能同时很好的知足一致性,可用性和分区容错性这三个需求,最多只能同时较好的知足两个。网络

类别:并发


一致性(Consistency)分布式

概念:
同一个数据在集群中的全部节点,同一时刻是否都是一样的值。
说明:
对于一致性,能够分为从客户端和服务端两个不一样的视角。从客户端来看,一致性主要指的是多并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如何复制分布到整个系统,以保证数据最终一致。一致性是由于有并发读写才有的问题,所以在理解一致性的问题时,必定要注意结合考虑并发读写的场景。从客户端角度,多进程并发访问时,更新过的数据在不一样进程如何获取的不一样策略,决定了不一样的一致性。对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。若是能容忍后续的部分或者所有访问不到,则是弱一致性。若是通过一段时间后要求能访问到更新后的数据,则是最终一致性。spa


可用性(Availability进程

概念:
集群中一部分节点故障后,集群总体是否还能处理客户端的更新请求。
说明:
对于一个可用性的分布式系统,每个工做正常的节点必须对每个请求做出响应。好的可用性主要是指系统可以很好的为用户服务,不出现用户操做失败或者访问超时等用户体验很差的状况。rem

 


分区容忍性(Partition tolerance同步

概念:
是否容许数据的分区,分区的意思是指是否容许集群中的节点之间没法通讯。
说明:
分区容错性和扩展性紧密相关。在分布式应用中,某些缘由会致使系统没法正常运转。好比如今的分布式系统中有某一个或者几个机器宕掉了,其余剩下的机器还可以正常运转知足系统需求,或者是机器之间有网络异常,将分布式系统分隔未独立的几个部分,各个部分还能维持分布式系统的运做,这样就具备良好的分区容错性。it


选择:io

      因为分布式系统,咱们没法不选择P,由于因为网络的不可靠性,一定会致使两个机器节点之间没法进行网络通讯,从而致使数据没法同步。这样的现实致使咱们必须选择P。而后,在这个前提下,咱们要么选择A,要么选择C。

下面分析一下缘由:
    当两台机器节点之间没法通讯时(即选择了P),若是咱们继续容许客户端写入数据到其中一台,那就必然致使数据不一致,由于这个数据没法同步到另外一台机器。(这种作法就是选择了A,牺牲了C)
    当两台机器节点之间没法通讯时(即选择了P),若是咱们不容许客户端写入数据到任何一台,那数据虽然是一致的,但系统就不可用了。(这种作法就是选择了C,牺牲了A)