CAP的总结

  • 关于cap,我就觉得不用纠结的太细节,如同《DDIA》中所述:它提供的是一个选择,即:“在网络分区的情况下,是选择一致性还是可用性”。因为网络分区是一种故障,不管你是否喜欢,它都是会发生的。类似传输数据时,是选择同步还是异步的方式

cap分别是指什么

  • C: DDIA中,说是线性一致性
  • A:非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)
  • P:当出现网络分区后,系统能够继续“履行职责”
    • 网络分区:
      • 网络分区是指因为网络故障导致网络不连通,不同节点分布在不同的子网络中,各个子网络内网络正常。节点之间的网络通讯出现了消息丢失、高延迟的问题。
      • 可能是丢包,也可能是连接中断,还可能是拥塞。
概述例子业务选择
ca需要非常严格的全体一致的协议,不能容忍网络错误或节点错误,一旦出现这样的问题,整个系统就会拒绝写请求单个节点的数据库单机
cp系统里大多数人的一致性协议,比如:Paxos 算法(Quorum 类的算法)。这样的系统只需要保证大多数结点数据一致,而少数的结点会在没有同步到最新版本的数据时变成不可用的状态。ZooKeeper出现分区,然后选举leader的时候,不能读写,因此不符合A对一致性要求高的,例如银行或金融
ap系统在分区时不能达成一致性,给出数据会有冲突,选择的是最终一致性Cassandra 、DynamoDB、CoachDB等对性能要求高,响应要求快的场景

补充

关于ca, 还有一个例子kafka replication,在同一个数据中心的系统,使用2pc,且需要全体一致协议,将要出现分区的时候,直接将该broke从集群中剔除,确保整个集群不会出现P现象详细看这个极客时间的例子

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值