zoukankan      html  css  js  c++  java
  • Zookeeper之 两种选举制度|为什么需要过半投票机制?

    一、选举制度

      1.第一次选举:超 > 半数选举,判断leader的标准:myid

    详细见:https://blog.csdn.net/weixin_43291055/article/details/95451357

      2.宕机选举:每个zk:(myid,zxid)

    • 只要超过半数的节点正常,集群就能正常提供服务。判断leader的标准如下:
      •  优先判断:zxid最大的是老大(最近发生事务更新的是老大)
      •  如果zxid相同,那么就比较myid。myid较大的服务器作为Leader服务器。

    zxid是什么?

    ZooKeeper状态的每次变化都接收一个ZXID(ZooKeeper事务id)形式的标记。ZXID是一个64位的数字,由Leader统一分配,全局唯一,不断递增。
    ZXID展示了所有的ZooKeeper的变更顺序。每次变更会有一个唯一的zxid,如果zxid1小于zxid2说明zxid1在zxid2之前发生。

    二、脑裂

    什么是脑裂?

    场景

    对于一个集群,想要提高这个集群的可用性,通常会采用多机房部署,比如现在有一个由6台zkServer所组成的一个集群,部署在了两个机房:

    正常情况下,此集群只会有一个Leader,那么如果机房之间的网络断了之后,两个机房内的zkServer还是可以相互通信的,如果不考虑过半机制,那么就会出现每个机房内部都将选出一个Leader。

    解决脑裂

  • 相关阅读:
    PL/SQL会遇到中文插入乱码问题、数据显示不全
    PL/SQL数据生成器
    编程小案例
    MySql案例收集
    关于PL/SQL的安装配置
    Android 歌词桌面同步显示
    DataGridView控件使用大全
    flex java 交互
    Android Launcher 全面剖析
    Android adb 命令
  • 原文地址:https://www.cnblogs.com/sabertobih/p/14096350.html
Copyright © 2011-2022 走看看