zoukankan      html  css  js  c++  java
  • zookeeper 选举机制 节点类型 监听器原理 写数据流程 命令行操作

    1.选举机制 从follower里面选出leader

    1)半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。

    2)Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,

    Zookeeper工作时,是有一个节点为Leader,其他则为Follower,Leader是通过内部的选举机制临时产生的。

    3)如何选举出leader

    假设有五台服务器组成的Zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,

    服务器1启动,此时只有它一台服务器启动了,它发出去的报文没有任何响应,所以它的选举状态一直是LOOKING状态。

    服务器2启动,与1通信,交换自己的选举结果,由于两者都没有历史数据,所以id值较大的服务器2胜出,但是没有达到超过半数以上的服务器都同意选举它,1和2保持LOOKING状态

    服务器3启动,服务器3成为服务器1、2、3中的id值大的,三台都选举了3,所以它成为了这次选举的Leader。

    服务器4启动,根据前面的分析,理论上服务器4应该是服务器1、2、3、4中最大的,但是已经有半数以上的服务器选举了服务器3,4只能当Follwer,5也一样

    2.节点类型

    1)持久化目录节点 客户端与zookeeper断开连接后 该节点依然存在

    1)持久化目录节点 客户端与zookeeper断开连接后 该节点依然存在 只是zookeeper给该节点进行顺序编号

    注意:顺序编号就是单调递增的001 002 003 004 由父节点维护

    1)临时目录节点 客户端与zookeeper断开连接后 该节点被删除

    1)临时目录节点 客户端与zookeeper断开连接后 该节点被删除 只是zookeeper给该节点进行顺序编号

    3.监听器原理

    4.写数据流程

    5.命令行操作

    ls / 查看根目录的节点  [watch]表示监听 但是只监听一次
    create /node1 "nihao1"watch 创建持久化目录节点node 写入节点数据nihao1
    create -e /node1 "nihao1" 创建临时目录节点 node 写入节点数据nihao1 当创建该节点的服务器quit 该节点删除
    create -s /node1 "nihao1"  创建持久化目录节点node00000001 写入节点数据nihao1 zookeeper给该节点进行顺序编号 
    get /node1 获取该节点数据
    set /node1 "world1" 修改该节点数据
    
  • 相关阅读:
    acm 总结之大数加法
    hdu 1004
    hdu 1887
    hdu 2007
    hdu 2004
    ACM总结之 A+B problem 总结
    nyoj_42_一笔画问题_201403181935
    最短路径--Floyd算法
    最短路径—Dijkstra算法
    nyoj_114_某种序列_201403161700
  • 原文地址:https://www.cnblogs.com/lyx666/p/12756238.html
Copyright © 2011-2022 走看看