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" 修改该节点数据
原文地址:https://www.cnblogs.com/lyx666/p/12756238.html