C:一致性,分布式系统中所有机器的数据访问的时候都是一致的。
A:可用性,任何时候访问都是可以得到相应的。
P:分区容错性,何为分区容错?容错就是允许分布式系统的机器的数据不一致,可不可以不允许呢?不可以,因为你无法保证机器,网络等永远正常,除非你是单机,就不会有机器数据不一致的情况了,因为只有一台机器,但这就不是分布式系统了,所以CAP中P是一定会有的。
既然P必须有,那么CAP中就剩下C和A能否也同时满足了:
AP:先看可用性,允许容错也可用,可以满足,只不过数据不一定正确,放弃一致性;
CP:再看一致性,允许分区容错又要一直,那么只能在数据达到一致之前不提供对外服务,抛弃可用性,也可以满足;
CAP:无法满足,因为上面两种情况都放弃了另一个。