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" 修改该节点数据
    
  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/lyx666/p/12756238.html
Copyright © 2011-2022 走看看