CAP理论概述

CAP理论概述

一般我们接触过分布式的基础概念,都应该听说过分布式理论,现在我们来看一下这个理论讲了什么。将CAP拆开来看,每个大写字母都有其相应的意思:
C:数据一致性(consistency)。即所有节点都拥有最新的数据内容
A:可用性(availability)。数据具备高可用性
P:分区容错性(partition-tolerance)。即容忍网络出现分区,分区之间网络不可达。
在实际应用场景中是这样的。一个业务分拆多个子业务,部署在不同的服务器上,通常上,我们将一个子业务称之为一个节点,这里我们假设有三个集群的节点,即该三个节点之间可以相互通信。
三个集群的节点
由于节点之间是通过网络来进行通信的(当然所有的分布式系统都是这样的),就可能出现这样一种情况:由于网络故障灯原因,原来相互两两联通的节点不连通了,整个网络变成了几块区域,即网络出现了分区。
在这里插入图片描述
这时,如果用户想要进行一些数据上的更改的话,比如说创建一个账户,由于分区的存在,我们将面临一下几种选择:

  1. 如果当前的操作是被允许的话,此时创建的数据只会在节点一和节点二或者节点二和节点三同步,因为节点一和节点 三的记录不能同步的。这种情况就是选择了可用性(availability),抛弃了数据一致性(consistency)。
  2. 而如果我们不允许当前用户注册账户,除非节点一和节点三恢复通信,这样我们可以保证每个节点都拥有最新的数据。这种情况就是抛弃了可用性(availability),选择了数据一致性(consistency)。

现在我们可以进一步讲述CAP这个理论所要表述的含义了。
一般来说,分布式系统中,P:分区容错性(partition-tolerance)这个是必需的,也是客观存在的。而C:数据一致性(consistency),A:可用性(availability)是不可兼得的。
当然,并不是说选了AP,C就完全抛弃了。不是说选了CP,A就完全抛弃了!只是在CAP理论中C所表示的一致性是强一致性(每个节点的数据都是最新版本),其实一致性还有其他级别的:
弱一致性:弱一致性是相对于强一致性而言,它不保证总能得到最新的值;
最终一致性(eventual consistency):放宽对时间的要求,在被调完成操作响应后的某个时间点,被调多个节点的数据最终达成一致。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值