随着计算机科学和互联网的发展,分布式场景变得越来越常见,能否处理好分布式场景下的问题,成为衡量一个工程师是否合格的标准。本文我们介绍下分布式系统相关的理论知识,这些理论是我们理解和处理分布式问题的基础。
CAP理论
CAP理论是在1998年由计算机科学家Eric Brewer提出的。介绍下CAP理论。
- Consintency:一致性,即访问所有节点得到的结果是一致的,这里的一致性指强一致。
- Availability:可用性,即所有节点保持高可用,这里的高可用还包括不能出现过高的延迟。
- Partition tolerance:分区容错性,节点之前网络不可用时,系统仍然可以对外提供服务。 CAP理论的原理是:一个系统最多可以同时满足以上三个条件中的两个,不可能三个同时满足。
之前看到过一个更容易理解的解释方法: - C代表一致
- A代表同一时间
- P代表不同空间 CP:不同空间,如果数据一致必然不会在同一时间
AP:不同空间,如果在同一时刻可以从任意空间取数据必然会导致数据状态不一致
CA:任意时刻获取数据都保证一致,必然P只能是1
结合现实中的业务场景,P(分区容错性)是每一个系统必须满足的要求,我们实际的选择就只有C