官方cap解析,
指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
目标对象
集群服务代指了同一类服务集群,对外暴露同一的功能,如支付服务集群,订单服务集群
C(一致性,针对集群服务接口的数据):不管怎么访问集群服务接口,返回的数据是一致的。(不一致的服务器可以停掉)
A(可用性,针对集群服务的接口):集群服务的接口每时每刻都可以成功访问。 (数据可以不一致,有返回就行,但是所有服务器必须一直运行)
P(分区容错性,针对集群服务):任何一台服务器出现网络不通的情况时,集群服务仍可正常运行,持续对外提供服务。(只是可以运行,正确性不关心)
为什么CAP不能同时存在:
集群网络没了,肯定无法同步数据了,但是服务仍然可对外提供功能,此时服务接口又可以每时每刻访问,那么接口返回的数据肯定不一致
AP:一个集群分成两派了还可以运行(满足P),此时如果还可以访问接口(满足A),那么肯定接口返回数据不一致了(不满足C)
CP:一个集群分成两派了还可以运行(满足P),此时需要每个接口返回数据一致(满足C),那么必须将整个集群停止掉(不满A),重新选举leader,把错误的节点踢出掉。
AP:一个集群需要每时每刻接口都可以访问(满足A),并且接口返回的数据一致(满足C),那么一旦集群出现网络问题的时候,直接让出现问题的服务器宕机进程杀死(不满足P),就可以了