CAP与CAP权衡

  1. CAP是什么?
    CAP是2000年时被提出,2002年被验证的分布式计算领域的公认定理。该定理的定义是:一个分布式系统最多只能同时满足CAP特性中的两个特性。

    C指Consistency,即数据一致性
    数据是在分布式系统中同一时间里的所有数据备份都是一致的。
    例如在如图所示的分布式数据库中,通过代理做负载均衡,把不同用户不同操作请求发送到不同的库上,这些操作所产生的数据影响应该在各库之间保持同步
    在这里插入图片描述
    A指Availability,即可用性
    即一个分布式系统在某些节点故障宕机之后,整个集群还能向外提供可靠的数据读写服务
    就拿上面这个例子来说,有一天,这个数据库集群的B库炸了。但是整个集群还能依靠剩余的库提供稳定的数据读写服务,这就是可用性
    在这里插入图片描述
    P指Partition tolerance,即分区容错性,也叫分区容忍性
    先解释一下什么叫分区,两种理解,一种是是整个分布式系统中的数据备份不同步,这样整个系统就被拆成了两个或多个分区,1区该数据备份值为x,2区该数据备份值为y且x≠y。
    第二种是因为节点故障,集群中某个节点损坏,导系统被分割成1区和2区,且两区不能通信。
    分区容错性就是在出现分区情况的时候,各分区还能各自保证CA特性
    接着拿这个例子说,出现了分区情况,为了满足分期容错性,保证这两分区还能各自维持CA特性。
    在这里插入图片描述

  2. CAP权衡
    显然CAP特性最多只能满足两条在分布式系统中,一定要舍弃一个特性,那么该如何抉择呢。这个时候就要看系统的特点和实际需求而定了。
    例如如果系统是涉及到钱财的,那么大多数情况下,C特性一致性就是不可或缺的,这中情况下就看需求再选择AP特性中的一个,要么不允许数据备份在分布式系统中出现,也就是保证A可用性,舍弃P,不提供分区容忍,一但网络故障,直接终止整个系统服务。或者选择P,提供分区容错,牺牲A可用性,在出现分区时候不提供写操作的服务,等待各节点的备份数据同步之后再提供写服务。

实际情况中分区一般是最容易出现的问题,所以是看情况选择CA特性,常见的如退一步放弃C特性,只要求数据最终一致性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值