一致性(Consistency),所有节点在同一时间具有相同的数据。
可用性(Availablility),服务器一直是可用的状态。
分区容忍(Partition tolerence),一般来说,分布式系统是分布在多个位置的。由于一些外在的原因,造成服务器之间不能互相通信,数据不能同步。这就是分区容错,分区容错是不可避免的,也就是P是天然存在的。
CAP只能达到CP或者AP,如果我们保证了CP,即一致性与分区容错。当我们通过一个服务器修改数据后,该服务器会向另一个服务器发送请求,将数据进行同步,但此时,该数据应处于锁定状态,不可再次修改。这样,如果此时我们想服务器发送请求,则得不到响应,这样就不能A,高可用。如果我们保证了AP,那么我们不能对服务器进行锁定,任何时候都要得到响应,那么数据的一致性就不好说。
区别
CAP理论 | 通信 | 配置中心 | ||
Zookeeper | CP | RPC | 不支持 | |
Nacos | AP | HTTP(2.0版本后为gRPC) | 支持 | |
Eruka | AP | HTTP | 不支持 |