CAP理论的一些碎碎念
CAP理论
在分布式领域中存在的一个基础理论-CAP,指出了在分布式系统中不可能同时满足3个条件,即,
- Consistency - 一致性
- Availability - 可用性
- Partition tolerance - 分区容忍性
一致性的等级
有弱到强的一致性实现分别有,
- 最终一致性(大部分的web应用都实现了最终一致性)
- 单调一致性
- 因果一致性
- 顺序一致性
- 线性一致性
- 严格一致性
其中严格一致性是理想情况,是不可能实现的。能够实现的最高一致性就是线性一致性,通常单节点的系统即可实现。
可用性的时长
一致性会影响可用性,强一致性带来的就是可用性时长的增加。这个很好理解,要保证数据保持一致,就需要额外做很多检查。
CP与AP的抉择
任何一个分布式系统都要在其中做出取舍,由于现实中存储之间的网络,或是其他物理条件,总是会存在分区的情况,因此CAP的取舍也退化称为CA的取舍。
但CP和AP的选择不是一个绝对的选择题,而是一种折衷,一种偏好。
这就像一个区间的两端,你选择离一致性近一些,那么就会离可用性远一些。