第一章-CAP

一、概述

         一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项.

  • 一致性(Consistency):所有节点在同一时间的数据完全一致。
  • 可用性(Availability):服务在正常时间内一直可用。
  • 分区容错性(Partition tolerance):系统在遇到某节点或者网络分区故障的时候,仍然能够对外满足可用性或一致性的服务。

二、分区容错性(Partition tolerance)是必须的

        分区容错性(Partition tolerance)分区容错性(Partition tolerance):即分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务。

        多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。分区容错的意思是,区间通信可能失败。比如,一台服务器放在本地,另一台服务器放在外地(可能是外省,甚至是外国),这就是两个区,它们之间可能无法通信,但是并不影响服务整体可用。

        分布式系统中,分区容错性是必须百分比满足的,所以CAP理论要么是CP、要么是AP(AC: 一般都是单体架构项目)。

        通俗的来讲,分布式系统中的CAP理论,所强调的是客户端发出请求之后,服务端先去保证一致性还是先返回。在这里值得注意的是,CP并不是不需要满足可用性,同样AP也不是不需要满足一致性,只不过侧重点不同。

三、案例讲解

AP架构中,侧重点服务的可用性,关注的重点在于客户端请求是否能够及时返回,典型代表有redis

CP架构中,侧重点数据的一致性,关注的重点在于节点直接的数据同步,典型代表有zookeeper 

值得注意的是:

  1. step3数据返回必须等待step2数据同步完成。
  2. step2数据同步是一个典型的多数派结构,即[n/2]+1个节点完成了数据的同步就可以执行返回  

四、保证一致性的方案 

       AP模式中虽然不关注一致性问题,但不代表我们的分布式系统不需要保证一致性,CP模式需要先关注数据同步,所以也会关注一致性问题。那么在分布式环境中,同样也必须保证数据的一致性。    

      分布式一致性的解决方案:state machine repalication(状态机复制)。通俗的来讲就是每个操作都是一条日志,其他节点同步到这些日志执行来实现集群的一致性。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值