浅析CAP理论以及一致性方案

CAP理论

Consistency(一致性)
  • 通过某个节点的写操作结果对后面通过其他节点的读操作可见
  • 如果更新数据后,并发访问情况下可立即感知该更新,称为强一致性
  • 如果允许之后部分或者全部感知不到该更新,称为弱一致性
  • 若在之后的一段时间(通常该时间不固定)后,一定可以感知该更新,称为最终一致性
Availability(可用性)
  • 任何一个没有发生故障的节点必须在有限时间内返回合理的结果
Partition tolerance(分区容忍性)
  • 部分节点宕机或者无法与其他节点通信时,各分区还可保持分布式系统的功能。

  • CAP理论:分布式系统中,一致性、可用性、分区容忍性最多只可同时满足两个
  • 一般分区容忍性都要求有保障,因此很多时候是在可用性和一致性之间做权衡。

一致性方案

Master-slave
  • RDBMS 的读写分离即为典型的Master-slave方案
  • 同步复制可保证强一致性但会影响可用性
  • 异步复制可提供高可用性但会降低一致性
WNR
  • 主要用于去中心化(P2P)的分布式系统中。DynamoDB与Cassandra即采用此方案
  • N代表副本数,W代表每次写操作要保证的最少写成功的副本数,R代表每次读至少读取的副本数
  • 当W+R>N时,可保证每次读取的数据至少有一个副本具有最新的更新
  • 多个写操作的顺序难以保证,可能导致多副本间的写操作顺序不一致,Dynamo通过向量时钟保证最终一致性
Paxos及其变种
  • Google的Chubby,Zookeeper的Zab,RAFT等

微信公众号:彪悍大蓝猫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彪悍大蓝猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值