CAP理论-分布式系统的基础理论-------CP、AP案例场景分析

一、前言:

    CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性,只能满足其中两个特性,一致性、可用性、分区容错性三者不可兼得:

                 CAP理论-分布式系统的基础理论-------CP、AP案例场景分析

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容错性(Partition tolerance)

     如何做到分布式系统具备高可用??

     常规的思路就是冗余,增加节点,当A节点挂掉,还有B节点提供服务,但是节点多了之后,数据一致性又很难保障了!!!

     如何提升数据一致性??

     减少节点,最好就是单点服务,但是节点少了,可用性又很难保障,这么看一致性和高可用就是一个对立面。

二、案例分析():

1、AP案例分析-SpringCloud-Eureka

CAP理论-分布式系统的基础理论-------CP、AP案例场景分析

图示,注册中心采用集群部署,满足高可用的特性,当订单服务在扩容的时候,新增订单服务实例4,数据注册到Eureka  A节点,在其余的两个节点没有订单服务4这个实例信息,这种情况下,用户服务获取服务列表,可能获取不到订单实例4,这就是最简单的数据不一致情况。

Eureka集群本身,各个节点都处于平等的地位,完全是为了冗余,提升高可用。

 

2、CP案例分析-Zookeeper

 

知识点预热

  ZooKeeper 集群中的角色简介:

    Leader: 负责发起投票和决议,更新系统状态
    Follower:用于接收客户端请求并向客户端返回结果,在选主过程中参与投票
    Observer: 可以接收客户端连接,将写请求转发给 Leader 节点,但不会参与 Leader 发起的投票,也不会被选举为 Leader,Observer 的目的是为了扩展系统,提高读取速度

在第二步,当Follower发现Leader节点挂了之后,Follower会拒绝现有的客户端连接,参与主从选举,在成功选举出leader之前,zk将不可用;这个时候如果ZK作为注册中心,注册中心将不可用。

CAP理论-分布式系统的基础理论-------CP、AP案例场景分析

注:图片来自百度