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次,那公司就可能破产了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。