ZooKeeper 集群

作者: happyJared | 来源:发表于2019-10-31 07:31 被阅读0次

    常见的集群模式是: Master/Slave 模式(主备模式)。在这种模式中,通常 Master 服务器作为主服务器提供写服务,其他的 Slave 服务器通过异步复制的方式来获取 Master 服务器最新的数据,并且提供读服务。

    但是,在 ZooKeeper 中并没有选择传统的 Master/Slave 概念,而是引入了 Leader、Follower 和 Observer 三种角色,如下图所示:

    ZooKeeper 集群

    在 ZooKeeper 集群中,所有的机器通过 Leader 选举过程来选定一台称为 “Leader” 的机器,Leader 既可以为客户端提供写服务,也能提供读服务。除了 Leader 外,Follower 和 Observer 都只能提供读服务,Follower 和 Observer 唯一的区别在于 Observer 机器不参与 Leader 的选举过程,也不参与写操作的 “过半写成功” 策略,故 Observer 机器可以在不影响写性能的情况下提升集群的读性能。

    ZooKeeper 中的不同角色

    当 Leader 服务器出现网络中断、崩溃退出或重启等异常情况时,ZAB 协议就会进人恢复模式,然后选举产生新的 Leader 服务器,这个过程大致是这样的:

    1. Leader election(选举阶段):在一开始,节点都处于选举阶段,只要有一个节点得到超半数节点的票数,它就可以当选准 Leader;
    2. Discovery(发现阶段):在这个阶段,Followers 跟随 Leader 进行通信,同步 Followers 间最近接收的事务提议;
    3. Synchronization(同步阶段):同步阶段主要是利用 Leader 前一阶段获得的最新提议历史,同步集群中所有的副本,同步完成之后,准 Leader 才会成为真正的 Leader;
    4. Broadcast(广播阶段): 到了这个阶段,Zookeeper 集群才能正式对外提供事务服务,并且 Leader 可以进行消息广播,同时。如果有新的节点加入,还需要对新节点进行同步。

    相关文章

      网友评论

        本文标题:ZooKeeper 集群

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