关于注册中心的CAP定理。

C.Consistency 数据一致性

不同节点请求或多次请求。数据要一致。(多个节点数据同步需要时间)
复制代码

A.Availability 服务可用性

发起请求,必须要有响应(要在规定时间返回结果)
复制代码

P.Partition tolerance 分区容错性

大多数分布式系统都分布在多个子网络。因为现在的网络问题,基本都会出现访问失败,所以一定要有分区容错性。那么P就一定要有。(分布式系统都有多个节点,挂掉部分也要继续可用,如果没有的话,有些请求就一直返回失败,直到问题解决。)
复制代码

CAP定义 。这三个指标不可能同时做到。

CA:
    保证了数据一致性和服务的可用性。 
    因为现在的网络环境。基本都会出现访问失败。所以不可能不要分区容错性。
    CA架构很难实现。
CP:
    保证了数据的一致性和分区容错性。
    分区容错性有了,那么就需要多个节点,数据同步就需要时间。
    当时间上去了,为了保证数据的一致性。服务需要时间等待数据同步完成才获取数据,等待时间过久就会导致服务不可用。就相当于不能实现A。
AP:
    保证了服务的可用性和分区容错性。
    分区容错性有了,那么就需要多个节点。需要保证服务可用性,就需要快速响应。
    要快速响应,就不能等待数据同步完成才响应。
    所以就会导致数据非一致性,相当于不能实现C。
复制代码

在保证了分区容错性P的情况下。 C和A是冲突。

要保证数据一致性。那么就需要时间。需要时间。服务可用性就不能满足了。
要保证服务可用性,那么就需要尽快返回。要速度快,就表示数据来不及同步。所以就不能保证数据一致性。
复制代码

CP: Zookeeper,Consul,etcd 如果你要保证数据一致性,那么就用CP的。

AP: Eureka 如果你要保证服务可用性。那就用AP的

猜你喜欢

转载自juejin.im/post/5ce7a0c25188252db706ef0a