架构06-分布式共识

打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

零、文章目次

架构06-分布式共识

1、分布式共识

(1)基本概念



  • **分布式共识:**在分布式系统中,多个节点之间告竣一致的过程。
  • **复杂性来源:**网络的不可靠性和哀求的并发性。
  • **应用场景:**如何确保重要数据长期存储在电脑上不会丢失。
(2)数据备份与系统可靠性



  • 磁盘备份:

    • 使用多块磁盘备份数据,降低数据丢失概率。
    • 例如,使用四块磁盘保存同一份数据,数据丢失的概率仅为0.0000625%。

  • 软件系统可靠性:

    • 单个节点系统宕机的原因多样,如程序错误、硬件损坏、网络分区等。
    • 通过多台机器拥有数据副本,进步系统的可靠性。

(3)系统可用性挑战



  • 动态数据同步:

    • 数据同步方法如2PC、3PC,确保数据在多个节点间一致。
    • **缺点:**增加Slave节点会增加系统可用性风险。

  • 状态转移 vs 操作转移:

    • **状态转移:**确保全部节点状态一致,但捐躯可用性。
    • **操作转移:**通过操作日记广播,允许内部状态不一致,但最终状态一致。

(4)高可用与高可靠性的平衡



  • Quorum机制:

    • 通过“少数服从多数”原则,容忍部分节点失联,进步系统可用性。
    • 例如,凌驾半数节点完成状态转换,即可认为数据变革成功。

2、Paxos算法

(1)Paxos算法简介



  • **提出者:**Leslie Lamport。
  • **职位:**分布式系统最重要的理论根本之一。
  • **配景:**Paxos算法的提出和被认可经历了多次妨害。
(2)Paxos算法的工作流程



  • 节点角色:

    • **Proposer:**提出提案。
    • **Acceptor:**应答提案,决定提案是否被接受。
    • **Learner:**学习已告竣共识的提案。

  • 工作流程:

    • 准备阶段(Prepare):

      • Proposer向全部Acceptor广播Prepare哀求,附带提案ID。
      • Acceptor复兴Promise应答,承诺不再接受ID小于等于n的Prepare哀求和ID小于n的Accept哀求。

    • 答应阶段(Accept):

      • Proposer收到多数Acceptor的Promise应答后,选择符合的值,广播Accept哀求。
      • Acceptor在不违背承诺的条件下,吸收并长期化提案值。

    • 共识告竣:

      • Proposer收到多数Acceptor的Accepted应答后,共识告竣,通知Learner。



(3)Paxos算法的范围性



  • 缺陷:

    • 只能对单个值形成决议。
    • 至少需要两次网络哀求和应答,高并发下网络开销大。
    • **活锁题目:**多个提案节点各执己见,导致系统“反复横跳”。
    • **非常场景:**由于提案节点的完全平等和并发提案,系统复杂性增加。

  • 现实应用:

    • 现实应用中多使用Multi Paxos和Fast Paxos等改进版本。

3、Multi Paxos 的改进

(1)核心改进



  • **核心改进:**增加“选主”过程。
  • 选主机制:

    • 定时轮询(心跳)确定当前主节点。
    • 心跳超时后,节点使用 Basic Paxos 的准备、答应过程竞选主节点。
    • 得到多数派答应后,竞选成功。

  • 主节点角色:

    • 只有主节点可以提出提案。
    • 从节点吸收到客户端哀求后,将哀求转发给主节点。
    • 主节点提案时,无需再次经过准备过程,只需答应即可。

(2)数据复制过程



  • 正常情况:

    • 主节点将变更写入日记,广播给从节点。
    • 从节点写入日记,复兴确认消息。
    • 主节点收到过半数确认后,提交变更,应答客户端,广播提交消息。
    • 从节点提交变更,完成数据复制。

  • 非常情况:

    • **网络分区:**部分节点失联,但仍能正常工作的节点数量满足多数派要求。
    • **分区规复:**主节点通过任期编号确定唯一性,回滚未提交的变更,同步失联期间的变更。

(3)安全性包管



  • **Safety(协定性):**确保选主结果唯一,不会出现多个主节点。
  • **Liveness(停止性):**选主过程最终能够结束。
  • **活锁题目:**理论上存在选主无法结束的风险,但现实工程实现中几乎不会出现。
(4)Raft 算法



  • **核心思想:**将共识题目分解为三个子题目:

    • Leader Election:选主题目。
    • Entity Replication:数据复制题目。
    • Safety:安全性包管。

  • **应用:**etcd、LogCabin、Consul 等分布式程序的根本。
4、Gossip 协议

(1)特点



  • 实用于最终一致性场景。
  • 无中心化节点,节点平等。
  • 高鲁棒性,适合公众互联网。
(2)工作过程



  • 信息源选择固定周期,随机选择 k 个节点传播消息。
  • 收到消息的节点在下一个周期内,将消息发送给 k 个节点,直到全网一致。
(3)缺点



  • 状态不一致时间长。
  • 消息冗余,增加网络传输压力。
(4)传播方式



  • **反熵:**同步全部数据,消除节点差别。
  • **传谣:**仅发送变更信息,减少网络开销。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

商道如狼道

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表