1. 背景
网络分区:俗称“脑裂”。当网络发生异常情况,导致分布式系统中部分节点之间的网络延时不断变大,最终导致组成分布式系统的所有节点中,只有部分节点之间能够进行正常通信,而另一些节点则不能。当网络分区出现时,分布式系统会出现局部小集群。
2. CAP
CAP理论指的是在一个分布式系统中,不可能同时满足Consistency(一致性)、Availablity(可用性)、Partition tolerance(分区容错性)这三个基本需求,最多只能满足其中的两项。
2.1 一致性(C)
数据在多个副本之间是否能够保持一致的特性。当执行数据更新操作后,仍然可保证数据处于一致的状态。
2.2 可用性(A)
系统提供的服务必须一直处于可用的状态。对于用户的每一个操作情况总是能够在有限的时间内返回结果。这个有限时间是系统设计之初就指定好的系统运行指标。返回的结果指的是系统返回用户的一个正常响应结果,而不是系统错误信息。
2.3 分区容错性(P)
分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。组成分布式系统的每个节点的加入与退出都可以看成是一个特殊的网络分区。
注:一个分布式系统无法同时满足这三个条件,只能满足两个,意味着我们要抛弃其中一项。
(1)CA,放弃P:将所有数据都放在一个分布式节点上,这同时放弃了系统的可扩展性。
(2)CP,放弃A:一段系统遇到故障,受影响的服务器需要等待一段时间,在恢复期间无法对外提供正常的服务。
(3)AP,放弃C:这里的放弃一致性是指放弃数据强一致性,而保留数据的最终一致性。系统无法实时保持数据的一致性,但承诺在一个限定的时间内,数据最终能够达到一致的状态。
原文地址:https://www.cnblogs.com/lujiango/p/8819547.html