cap

cap就是说一致性(consistency)

可用性(Availability)

分区容错性(Partition Tolerant)

分布式服务只能满足其2。

cap理论最开始在2000年的一次演讲被提出,可以百度“Towards Robust Distributed Systems”

2年后一篇名为Brewer’s ...........Services的论文证明了cap理论。如图

图片发自App

举个例子,zk集群,对zk的写操作,一定要所有节点都成功了,才算成功。(主从同步)如果主挂了,zk集群要重新选主,期间是不对外服务的。所以zk是cp模型,牺牲了可用性。这也是现在大厂不愿意用zk的原因之一。

redis集群,假设是主从结构,主挂了,假设主还没有来得及同步到从,数据就丢了。期间redis仍然可用,只是数据丢了,保证了可用性,牺牲了一致性。所以redis是ap模型。

我们要根据业务来选择我们需要的模型,比如分布式锁,就不适合用redis,因为锁万一丢了,就容易被获取多次,造成严重bug。万一是转账1个亿,结果因为锁没锁住,导致转了2次,那公司就可能破产了。

你可能感兴趣的:(cap)