C是一致性,A是可用性,P是分区容错性
一致性:所用节点访问同一份最新的数据副本
可用性:非故障的节点在合理的时间内返回合理的响应,不是错误或者超时的响应
分区容错性:分布式系统出现网络分区的时候,仍然能够对外提供服务
在分布式系统中,多个节点之间的网络本来是连通的,但是如果出现故障,比如出现网络波动,某些节点之间不连通,网络会被分成几块区域,这就叫做网络分区
当发生网络分区时,CAP三者只能同时达到其中两者,但是是以p为前提,决定了p之后才有c和a的选择,不可以同时拥有两者,所以只有cp或者ap架构,不可以是ac,不能在分布式系统中既可以保证一致性和可用性,只用在单节点的系统才会同时存在ca
选择cp还是ap需要根据实际情况,如果网络分区正常的话,出现网络波动只是极少的时间,也就说不需要保证 P 的时候,C 和 A 能够同时保证。