CAP理论的理解

这个CAP理论有几个版本,

其中对于A和P的定义非常之模糊。

导致我对于可用性和分区容忍性的区别一直没有把握好。直到我读了很多文章,并进行下面的总结的时候,我都不确定我的理解是否合理。

我最终接受的说法是,Seth Gilbert和Nancy Lynch的定义。

主要来自于它们的两篇文章

(1)Brewer's  Conjecture  and  the  Feasibility  of  Consistent,  Available, Partition-Tolerant  Web  Services, 2002

(2)Perspectives on the CAP Theorem, 2012

Availability
simply means that each request eventually receive a response. 

Partition Tolerance

the network will be allowed to lose arbitrarily many messages sent from one node to another.


The CAP Theorem. Thus, for the purpose of this section, the CAP Theorem can be stated as follows: In a network
subject to communication failures, it is impossible for any web service to implement an atomic read/write shared
memory that guarantees a response to every request.


说白了,分区的意思就是消息可能丢失。

至于丢失的原因,可能是网络中传输的某个机器宕机、可能是丢包、可能是源目的节点主机宕机,你完全无法了解。

分区容忍性就是想要说,我们所处的环境是可能发生分区的。是对于环境的一种假设。

并不是说发生分区以后,系统到底能不能够提供服务的问题。

所以从本质上来说,分区容忍性和另外两个特性的角度都是不同的。


你可能感兴趣的:(分布式)