分布式理论:CAP是三选二吗?

分布式系统的 CAP 理论:首先把分布式系统中的三个特性进行了如下归纳:
● 一致性(C): 在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)

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

● 分区容忍性(P): 以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前 操作在 C 和 A 之间做出选择。(分区状态可以理解为部分机器不连通了,比如机器挂了,繁忙失去响应,单机房故障等)

Partition 字面意思是网络分区,即因网络因素将系统分隔为多个单独的部 分,有人可能会说,网络分区的情况发生概率非常小啊,是不是不用考虑 P, 保证 CA 就好。要理解 P,我们看回 CAP 证明中 P 的定义:

In order to model partition tolerance, the network will be allowed to lose arbitrarily many messages sent from one node to another。

我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。

网络分区的情况符合该定义,网络丢包的情况也符合以上定义,另外节点宕 机,其他节点发往宕机节点的包也将丢失,这种情况同样符合定义。现实情况 下我们面对的是一个不可靠的网络、有一定概率宕机的设备,这两个因素都会 导致 Partition,因而分布式系统实现中 P 是一个必须项,而不是可选项。

高可用、数据一致性是很多系统设计的目标,但是分区又是不可避免的事情。 我们来看一看分别拥有 CA、CP 和 AP 的情况。

CA without P:如果不要求 P(不允许分区),则 C(强一致性)和 A(可用 性)是可以保证的。

但其实分区不是你想不想的问题,而是始终会存在,CA 系 统基本上是单机系统,比如单机数据库。2PC 是实现强一致性的具体手段。

原文链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值