架构师训练营 第六周 【作业】
题目:请简述CAP原理。
1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。
Consistency
Availability
Partition tolerance
首字母分别是C、A、P
1、首先介绍Partition tolerance
大多数分布式系统都分布在多个子网络,每个子网络就叫做一个区(partition)。分区容错的意思是,子网络间通信可能会失败。
一般来说,分区容错无法避免,因此可以认为 CAP 的 P 总是成立。CAP 定理告诉我们,剩下的 C 和 A 无法同时做到。
2、Consistency
一致性,意思是,写操作之后的读操作,必须返回该最新值。
如果有两个节点,向一个节点中写入数据后,要确保及时同步到第二个节点,以便两个节点都能读取到相同的数据。
3、Availability
可用性,意思是,只要收到用户的请求,不管请求成功与否,数据新旧准确与否,服务器都必须给出回应。
因为P的存在,C与A就无法同时满足。如果想满足强一致性,那么就要失去一些可用性。反之如果追求高可用,那么一致性就很难得到保证。
现实开发中,通常可根据业务场景来取舍,例如,在高可用的系统设计中,可以略降低一致性(用结果一致性)即可。
评论