理解CAP定理

作用

分布式系统的最大难点,就是各个节点的状态如何同步。CAP定理正是解决这方面问题的基本定理,也是理解分布式系统的起点。

定义

分布式系统有三个指标:
Consistency
Availability
Partition tolerance
它们的首个字母分别是C,A,P

Consistency:即一致性。在分布式系统中,在一个节点写完后,在任意一个节点读数据,都能读到刚才写完的数据。
Avaliability:即可用性。意思是,只要收到客户端的请求,服务器(不管是哪个节点)必须给出回应,而不管回应是什么。
Partition tolerance:即分区容忍性。所谓分区容忍性,指的是网络发生分区时,还能继续提供服务(即容忍)。分区的含义举个例子,有S1、S2两台服务器,本来在同一个网络,但是现在它们之间网络连接断了,变成了两个网络,就出现了分区。

所谓指标就是希望能达到的目标,而CAP定理指的是这3个指标不能同时达到。

为什么成立

首先如果P达不到,意味着不能正常提供服务了,那就没有C、A可言,因此P肯定要达到。那CAP定理就演化成了,C和A不能同时达到。
那为什么C和A不能同时达到呢?举个例子,有服务器S1和S2,他们两个各自维护彼此一样的数据。现在用户往S1写数据,为了做到C,就必须让S2停止读写,等S1同步到S2后才能开放读写,而停止的操作,就出现S2不可用,这时A就不成立。反过来,如果A要成立,S2就要继续工作,就会导致用户取S2的数据时,不是刚才写的数据,就导致了C不成立。

最后

最后,可以重新理解一下CAP。之前我们的理解是,CAP不能同时存在,那现在可以再提炼为,P成立下,CA只能二选一。

参考链接

http://www.ruanyifeng.com/blog/2018/07/cap.html
https://www.zhihu.com/question/64778723

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