zoukankan      html  css  js  c++  java
  • Zookeeper知识点

    Zookeeper是一个分布式协调服务

    Zookeeper服务器的角色

    • Leader: 所有的写操作必须要经过Leader完成,在广播给其它服务器。心跳检测。集群中只有一个Leader。
    • Follower: 接收客户端连接,处理客户端的读请求,并将写请求转发给Leader处理。参与投票。
    • Observer: 与Follower类似,但不参与投票。

    Zookeeper服务器的状态

    • Looking: 竞选状态。该状态下服务器认为集群中没有Leader,会发起Leader选举。
    • Following: 跟随者状态。表明当前服务器角色是Follwer。
    • Leading: 领导者状态。表明当前服务器角色是Leader。
    • Observing: 表明当前服务器角色是Observer。

    术语介绍

    myid

    myid就是服务器的id。在配置文件中“server.id=host:port:port”,其中“server.”后面的就是myid。例如:

    tickTime=2000
    dataDir=/var/lib/zookeeper/
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=zoo1:2888:3888
    server.2=zoo2:2888:3888
    server.3=zoo3:2888:3888

    zxid

    类似关系型数据库中的事务ID,用于标识一次更新操作。zxid是单调递增的。zxid越大,代表Server对Znode的操作越新。

    逻辑时钟

    每个服务器会维护一个自增的整数,名为逻辑时钟(又叫投票次数),它表示这是该服务器发起的第多少轮投票。同一轮投票过程中的逻辑时钟值是相同的。每投完一次票这个数据就会增加,然后与接收到的其它服务器返回的投票信息中的数值相比,根据不同的值做出不同的判断。

    两种情况需要进行Leader选举

    1. 服务器初始化启动
    2. 服务器运行期间无法和Leader保持连接,Leader节点崩溃,逻辑时钟崩溃

    一般建议选取奇数个节点进行搭建分布式服务器集群

     

    选举

    https://zookeeper.apache.org/doc/current/recipes.html#sc_leaderElection

    https://www.cnblogs.com/ASPNET2008/p/6421571.html

    http://www.jasongj.com/zookeeper/fastleaderelection/

    https://blog.csdn.net/weixin_40083942/article/details/78484099

  • 相关阅读:
    2.17-2.23第一周总结
    10号总结
    9日总结
    8号总结
    7号寒假总结
    6号
    读后感《程序员的修炼之道:从小工到专家》1
    java第二次动手动脑
    回文判断
    二进制的原码,反码以及补码介绍
  • 原文地址:https://www.cnblogs.com/cjsblog/p/9682648.html
Copyright © 2011-2022 走看看