美文网首页
zk源码阅读38:集群版Server启动时角色与消息通信类型

zk源码阅读38:集群版Server启动时角色与消息通信类型

作者: 赤子心_d709 | 来源:发表于2017-08-16 18:22 被阅读123次

    摘要

    前面讲完了集群版leader选举之后,后面要完成leader和各个机器的数据同步,以及leader和各机器的服务启动,
    在这里简单描述一下服务器的角色,以及服务器之间,消息通信的类型。方便后文的理解。
    主要讲解内容

    服务器角色
      Leader
      Learner
        Follower
        Observer
    消息类型
      数据同步型
      服务器初始化型
      请求处理型
      会话管理型
    

    服务器角色

    Leader

    Leader服务器是Zookeeper集群工作的核心,其主要工作如下

      (1) 事务请求的唯一调度和处理者,保证集群事务处理的顺序性。
      (2) 集群内部各服务器的调度者。
    

    Learner

    主要分为Follower和Observer

    Follower

    Follower是Zookeeper集群的跟随者,其主要工作如下

      (1) 处理客户端非事务性请求(读取数据),转发事务请求给Leader服务器。
      (2) 参与事务请求Proposal的投票。
      (3) 参与Leader选举投票。
    

    Obeserver

    Observer充当观察者角色,观察Zookeeper集群的最新状态变化并将这些状态同步过来,其对于非事务请求可以进行独立处理,对于事务请求,则会转发给Leader服务器进行处理。Observer不会参与任何形式的投票,包括事务请求Proposal的投票和Leader选举投票。

    消息类型

    这一段是直接引用refer的

    Zookeeper的消息类型大体分为数据同步型、服务器初始化型、请求处理型和会话管理型。

    数据同步型

    指在Learner和Leader服务器进行数据同步时,网络通信所用到的消息,通常有DIFF、TRUNC、SNAP、UPTODATE。


    服务器初始化型

    指在整个集群或是某些新机器初始化时,Leader和Learner之间相互通信所使用的消息类型,常见的有OBSERVERINFO、FOLLOWERINFO、LEADERINFO、ACKEPOCH和NEWLEADER五种。


    请求处理型

    指在进行清理时,Leader和Learner服务器之间互相通信所使用的消息,常见的有REQUEST、PROPOSAL、ACK、COMMIT、INFORM和SYNC六种。


    会话管理型

    指Zookeeper在进行会话管理时和Learner服务器之间互相通信所使用的消息,常见的有PING和REVALIDATE两种。


    思考

    Learner的意义

    非leader的机器都可以称为Learner,在代码中Learner是Follower和Observer的父类

    refer

    http://www.cnblogs.com/leesf456/p/6139266.html
    《paxos到zk》 7.7节

    相关文章

      网友评论

          本文标题:zk源码阅读38:集群版Server启动时角色与消息通信类型

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