Zookeeper 基础知识

作者: 一不了留心长帅了 | 来源:发表于2019-03-26 20:04 被阅读0次

    Zookeeper是什么

    Zookeeper 是一个高性能分布式应用协调服务

    • Naming Service
    • 配置管理
    • Leader Election
    • 服务发现
    • 同步
    • Group Service
    • Barrier
    • 分布式队列
    • 两阶段提交

    Zookeeper 工作方式

    • Zookeeper 集群包含1个Leader,多个Follower。
    • 所有的Follower都可提供读服务。
    • 所有的写操作都会被forward到Leader
    • Client与Server通过NIO通信
    • 全局串行化所有的写操作
    • 保证同一客户端的指令被FIFO执行
    • 保证消息通知的FIFO

    Zab协议 -广播模式

    • Leader将所有更新(称为proposal),顺序发给Follower
    • 当Leader收到半数以上的Follower对此proposal的ACK时,即向所有Follower发送commit消息,并在本地commit该消息
    • Follower收到Proposal后即将对该Proposal写入磁盘,写入成功即返回ACK给Leader
    • 每个Proposal 都有一个唯一的单调递增的proposal ID 即 zxid

    Zab协议 -恢复模式

    • 进入恢复模式 : 当Leader宕机或者丢失大多数Follower后,即进入恢复模式
    • 结束恢复模式 : 当新领导被选举出来,且大多数Follower完成了与Leader的状态同步后,恢复模式即结束,从而进入广播模式
    • 恢复模式的意义
      • 发现集群中被commit的proposal的最大zxid
      • 建立新的epoch,从而保证之前的Leader不能再commit新的Proposal
      • 集群中大部分节点都commit过前一个Leader commit过的消息,而新的Leader是被大部分节点所支持的,所以被之前Leader commit 过的Proposal不会丢失,至少被一个节点所保存
      • 新Leader会与所有Follower通信,从而保证大部分节点都拥有最新的数据
    恢复阶段的保证
    • 若一条消息在一台机器上被deliver,那么该消息必须将在每台机器上deliver,即使那台机器故障了
    • 一个被skip的消息,必须仍然需要被skip

    相关文章

      网友评论

        本文标题:Zookeeper 基础知识

        本文链接:https://www.haomeiwen.com/subject/dqonvqtx.html