在分布式中有一种理论叫CAP理论,C表示数据一致性,A表示系统可用性,P表示分区容错性,提出这个理论的人也指出了CAP这三者间只能有两个同时成立。
先来解释一下P分区容错性,在分布式的情况下,应用都会搭一个集群,比如用户在使用一个服务的时候可能会有多个用户服务端,当一个用户在一个服务端进行了修改了数据时,另一个服务端如果有相关的数据,那也需要跟着修改,否则,两个服务端的得到的结果就会不一样,因此两个服务端之间需要进行数据的通信,但是数据通信的时候可能会由于网络波动导致通信失败,这时就会出现分区,而P就是保证,在出现分区的时候,用户仍可访问任何一个服务端。
而用户在使用应用时难免会出现网络波动导致产生分区,因此在CAP这个理念中,P是一定存在的,因为前面提到过,CAP三者之间只有两个可以同时存在,要保证AC也就是数据一致性和系统可用性同时存在只有两种情况,一种是用户在使用应用时不会存在网络波动,那么只要两者保持通信,数据就会永远一致,但是这是不现实的,另一种情况是这是一个单节点,单节点就不存在数据不一致了,因为只有一个数据,但是现在说的是分布式,所以AC是不存在的,那么就只剩下两种情况,CP和AP。
CP:保证了数据的一致性。适用于一些强一致性要求较高、可以容忍短暂的不可用性的应用场景,缺点就是在在发生网络波动时,会导致服务不可用,需要等到数据一致后,才能让用户正常访问,所以会影响用户体验。
AP:对于一些对一致性要求较低、需要保证系统的高可用性和持续可用性的应用场景。适用于社交媒体,AP不会影响用户体验,能保证系统的正常运行;在面对网络分区时,AP系统会牺牲一致性,允许系统中的数据存在短暂的不一致。
标签:分区,用户,AP,一致性,CP,数据,服务端,分布式 From: https://www.cnblogs.com/hwj7/p/17688737.html