分布式CAP理论
分布式CAP的理解总结:
C : 一致性 我的理解是分布式系统中在同一时刻保证是相同的值。(分为强一致性和最终一致性。)
A :可用性 我的理解是当有节点出现问题的时候,集群还能保证提供服务,数据可以不是一致的。
P :分区容错性 我的理解就是我们分布式微服务突然通信之间出现问题的话,就发生了分区,这个时候我们就需要考虑在C和A之间做出选择。
分布式系统中要么满足CP要么满足AP 如果满足了CA那么就不要求分区这个时候那一定不是分布式系统 所以分布式系统中只存在CP和AP
当分布式系统中的网络出现问题的时候,这个时候P就已经满足了,这个时候我们如果需要满足可用性,那么就必然无法做到一致性,因为网络问题分区的系统必然无法通信,所以无法数据一致,但是这个时候我们其他的分布式系统可以保证正常的运行,如果我们要保证数据的一致性的话,就需要保证各个节点的数据都相同,所以需要将数据赋值到每一个节点上,这个时候保证了数据的一致性,但同时就不能对外提供服务了就无法保证数据的可用性。
CAP的基础:
CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性,保证所偶的操作都能返回成功)
分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求(访问网站的响应时间要求)。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择(如果集群中的机器被分成了两部分,这两部分不能相互通信,系统是否能继续正常工作)
CAP的精髓
CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。
在进行分布式架构设计时,必须做出取舍。当前一般是通过分布式缓存中各节点的最终一致性来提高系统的性能,通过使用多节点之间的数据异步复制技术来实现集群化的数据一致性。