关于cap协议的思考

对于一次请求是失败还是从成功,是由这个系统的设计者定义的,可以直接在集群返回给客户端的response中显示的说明此次请求false,也可以就把执行的信息传给客户端,说我自己费了很大的劲干了这些活你看看能不能用吧。
比如,
还是cap定理的证明模型,集群只有节点A,B。A,B之间网络不通,客户端一次写请求发送到A,A返回给客户端说一共2个节点自己成功写了一个节点,这时候客户端如果把它看成是一次成功的请求,ok,cap定理中的高可用你满足了,但是接下来我再去读一次,强一致性可能就不满足了。如果客户端把它看成一次失败的请求,ok,直接高可用就不满足了。这就是cap定理的证明,为什么证明这么简单,因为它的条件很强,高可用,强一致性,分区容错性,想要理解cap定理要去看论文明确A与C的定义。

让我们跳出来看,比较下客户端的两次选择,其实是系统设计者的选择,前者与后者相比,每次请求成功的概率是不是更大,即可用性更高,但是与此同时,每次读取到的数据发生不一致的概率也会增大,即一致性更低。这里才是cap的精髓,c与a并不是非0即1,他们是连续的变量,但是是此高必定导致彼低的。

猜你喜欢

转载自blog.csdn.net/qq_41634872/article/details/110189065
CAP