美文网首页
ZookeeperMasterSelector

ZookeeperMasterSelector

作者: 时待吾 | 来源:发表于2017-06-17 18:56 被阅读16次

    master选举

    什么是master选举?为什么需要master选举?

    为实现提供7*24的客户服务,我们通常采用集群模式进行服务发布,进行接受请求 处理请求的即为master,为保证高可用性,通常采用

    master-slave模式,当master出现宕机等故障导致无法提供正常的客户服务时,选举出一台slave机作为master提供客户服务,这个选举的过程就是master选举。

    架构图:

    zookeeper集群:

    zookeeper

    /master -- master节点

    /servers -- 服务器列表节点

    / work server1

    / work server2

    / work server3

    工作服务器集群

    work server1

    work server2

    work server3

    主题流程:

    1/ 每一台工作服务器 在启动时都会向 work server 节点注册一个临时节点 写入自己的基本信息 (服务注册用以服务发现) 此处暂时不开展

    2/ 每一台工作服务器 在启动时 都会向master节点 注册监听(监听master节点的删除时间),如果发生删除事件,则进行 创建master 操作。  -- 临时节点

    启动时 进行 创建master操作  -- 临时节点

    3/ 如果 master创建 操作 执行成功 则返回当前的master节点 并标记自己为master

    如果创建不成功 则 读取master节点并返回

    4  如果master节点读取不成功 说明读取时候发生了宕机,则重新开始 创建master操作

    会话失效则创建的临时节点自动删除,服务器宕机直接导致连接超时,会话失效,

    监听master的删除事件可以监控当前的服务器在线情况。如果发生宕机,则要开启新一轮的选主操作。

    LeaderSelectorZklient 调度器  启动和停止workerver

    WorkServer 服务器类 主工作类

    Runningata 服务器的描述信息

    网络抖动:

    网络延迟从20ms变为5ms,网络抖动为15毫秒,描述的是网络不稳定性。

    影响:

    每一次由网络抖动所引发的master节点的宕机,将会导致master节点数据以及相关管理数据的迁移重新分配,因此应付

    网络抖动策略就是 当之前的master节点 是自己时 就立马 发起创建master节点操作,这样就会提前创建master节点,

    降低 数据重新迁移带来的影响, 而哪些 之前的master节点不是自己的服务器,意味者如果当前master节点选择为自己的话,

    需要进行数据迁移,网络本身就不稳定了,再添加数据迁移无疑将会加大网络瓶颈。因此,当之前的master节点不是自己时,

    延迟5秒创建master,给上一个master充足的时间,让他继续当老大。

    应用场景:

    相关文章

      网友评论

          本文标题:ZookeeperMasterSelector

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