zoukankan      html  css  js  c++  java
  • ZooKeeper 的读写操作 & 选举机制


    0. 说明

      记录 ZooKeeper 的读写操作和选举机制



    1. ZooKeeper 的读写操作

    1. 读操作:所有 ZooKeeper 节点都可以提供读请求(包括 follower 和 leader )
    2. 写操作:需要先通过 leader 节点,leader 同意之后,可以向指定节点写入

    2. ZooKeeper 的选举机制

      2.1 说明

      ZooKeeper 虽然在配置文件中并没有指定 master 和 slave,但是 ZooKeeper 工作时,只有一个节点为 leader,其他则为 follower

      Leader是通过内部的选举机制临时产生的

    1. Zxid: ZooKeeper 的事务 id,每次处理请求(读或写),此 id 会 +1
    2. myid: 在配置时指定的 Zookeeper id

      2.2 初始化选举
      3个节点组成的 ZooKeeper 集群,myid 分别为102、103、104

    1. 启动 s102 ,选举状态为 looking 状态,
    2. 启动 s103 ,和 s102 进行通信,交换选举结果,根据 myid 的大小确认 s103 为 leader
    3. 启动 s104 ,和 s102 、s103 进行通信,交换选举结果,虽然 s104的 myid 的大于 s103 ,但是 s103 获得了一半以上的选票,s103 还是 leader

      2.3 非全新集群选举机制

      适用于 ZooKeeper 节点故障之后的重新选举

    1. 先比较 Zxid ,Zxid 大的胜出
    2. Zxid 相同的情况下, myid 大的胜出

    且将新火试新茶,诗酒趁年华。
  • 相关阅读:
    ThinkPHP框架基础知识
    ajax分页练习
    实例练习:购物车
    事件
    ajax基础
    jQuery事件
    jQuery基础
    PHP制作登录注册页面
    iview里tree组件改造
    Vue CLI及其vue.config.js(一)
  • 原文地址:https://www.cnblogs.com/share23/p/9716279.html
Copyright © 2011-2022 走看看