【分布式系统设计】引子:从CAP理论谈起

CAP理论

分布式计算系统不可能同时确保一致性(Consistency)、可用性(Availablity)和分区容忍性(Partition),设计中往往需要弱化对某个特性的保证。

  • 一致性(Consistency):客户端的每一次的每次读操作,不管访问哪个节点,要么读到的是同一份最新写入的数据,要不然读取失败。(强调数据正确)
  • 可用性(Availablity):任何来自客户端的请求,不管访问哪个非故障节点,都能得到相应数据,但不保证是同一份最新数据。(强调服务可用)
  • 分区容忍性(Partition):当节点间出现任意数量的消息丢失或高延迟的时候,系统仍然可以继续工作。(强调集群对分区故障的容错能力)-这无法避免,所以是分布式系统中必须要考虑的。

实际上,在分布式系统设计中,P是前提,如果没有P本质上就退化到了 - 单机版mysql。

所以,在发生网络分区情况下/分布式系统设计中,我们需要在A和C之间进行抉择,选择保证数据一致还是服务可用。而集群正常运行时,A和C是都可以保证的。

  • CP架构在当发生网络分区时,为了保证返回给客户端数据准确性,为了不破坏一致性,可能会因为无法响应最新数据,而拒绝响应。在网络分区恢复后,完成数据同步,才可处理客户端请求。(基于raft的etcd等,redis,mongodb)
  • AP架构在发生网络分区时,发生分区的节点不需要等待数据完成同步,便可处理客户端请求,将尽可能的给用户返回相对新的数据。在网络分区恢复后,完成数据同步。(couchdb
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值