分布式CAP理论

2020-04-07  本文已影响0人  飞翃荷兰人

本文主要来源于:https://mwhittaker.github.io/blog/an_illustrated_proof_of_the_cap_theorem/

分布式的CAP理论中的C - A - P,分别指的是

any read operation that begins after a write operation completes must return that value, or the result of a later write operation

意思是:如果客户端对一个分布式系统进行了写操作,在系统返回后,如果立马进行读操作,读到的必须是自己刚刚写入的最新结果。


image.png

上图的意思为:客户端对服务集群进行写操作,只有当分布式系统完成信息同步后,才会返回成功,这时无论客户端访问的是哪台服务器,都是最新的结果。

every request received by a non-failing node in the system must result in a response

如果服务节点没有崩溃,那么每个请求必须得到回应。服务节点不许忽略客户端的请求。

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

image.png

对于分布式服务器G1, G2,允许G1和G2之间失去相互通信的能力。

总结:分布式系统只能满足三项中的两项而不可能满足全部三项。理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。 --wiki百科

最后我们用redis举个例子:

大家都知道redis是有主从的,我们假设,现在有一个一主一从的redis,现在要写入redis,写完之后再读取结果。

上一篇下一篇

猜你喜欢

热点阅读