分布式系统学习(四)CAP理论与一致性协议

CAP理论

CAP 定理是分布式系统设计中最基础,也是最为关键的理论。它指出,分布式数据存储不可能同时满足以下三个条件。

  1. 一致性(Consistency):每次读取要么获得最近写入的数据,要么获得一个错误。

  2. 可用性(Availability):每次请求都能获得一个(非错误)响应,但不保证返回的是最新写入的数据。

  3. 分区容忍(Partition tolerance):尽管任意数量的消息被节点间的网络丢失(或延迟),系统仍继续运行。

这里的可用性指的是所有节点可用

当系统进入分区模式之后,有两种选择:

  1. 选择一致性:例如 Paxos 算法,只有大多数的主分区能够进行操作,其他分区不可用,当网络恢复之后少数节点跟多数节点同步数据。

  2. 选择可用性:例如谷歌文档,出现分区时进入离线模式,等网络恢复了客户端跟服务端数据进行合并恢复。

一致性协议

一致性协议根据是否允许数据分歧可以分为两种:

  1. 单主协议(不允许数据分歧):整个分布式系统就像一个单体系统,所有写操作都由主节点处理并且同步给其他副本。例如主备同步、2PC、Paxos 都属于这类协议。

  2. 多主协议(允许数据分歧):所有写操作可以由不同节点发起,并且同步给其他副本。例如 Gossip、POW。

单主协议
  1. 主备复制,达到最终一致性
  2. 2阶段3阶段提交,实现顺序一致性
  3. paxos等分区容忍的一致性协议,实现顺序一致性
多主协议(最终一致性)

多主协议允许运行多个节点并发写,就一定会出现对一个数据并发写导致数据冲突的情况,因此这类协议都需要解决并发写的问题

Gossip协议:每个节点都可以对其他节点发送消息,接收到消息的节点随机选择其他节点发送消息,接收到消息的节点也做同样的事情。

参考:

分布式系统:CAP 理论的前世今生
分布式系统:一致性协议
Paxos 一致性协议
如何浅显易懂地解说 Paxos 的算法?
如何给女朋友解释什么是3PC?
如何给女朋友解释什么是2PC(二阶段提交)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值