前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

1、CAP 理论

CAP 原则又称 CAP 定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼得。一个分布式系统不可能同时满足 C(一致性)、A (可用性)和 P (分区容错性)。

由于分区容错性在是分布式系统中必须要保证的,因此我们只能在 AC 之间进行权衡。在此 Zookeeper 保证的是 CP, 而Eureka则是 AP

1.1、特性

1.1.1、一致性 C

在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)

1.1.2、可用性 A

在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)

1.1.3、分区容错性 P

以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在 CA 之间做出选择。

1.2、为什么不可能同时成立

案很简单,因为可能通信失败(即出现分区容错)。

image-20200513170226220

如果保证 G2 的一致性,那么 G1 必须在写操作时,锁定 G2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,G2 不能读写,没有可用性不。

如果保证 G2 的可用性,那么势必不能锁定 G2,所以一致性不成立。

ContactAuthor