Zookeeper的基本安装和操作
一、注意事项:
在zoo.cfg文件中设置的zkDir位置下创建zkDate目录,并且增加一个 myid 的文件,文件内容为当前节点的zookeeper的编号。
二、基本操作:
1. ls /
查看当前znode所包含的内容
2. ls2 /
查看当前znode节点的详细数据。
3.create /节点名称 数据
zookeeper中创建节点必须要有数据 否则无法创建。
4.get /节点名称/节点名称
取出使用create存入的数据
5.create -e /节点名称 创建短暂节点
6.create -s /节点名称 创建带序号的节点
7.set /节点名称 数据 修改节点数据
8.get /节点名称 watch 监听节点数据变化(注册一次有效一次)
9.ls /节点名称 watch 监听节点的子节点变化(路径变化)
10.删除
delete 删除节点的子节点
rmr 删除整个节点
11.stat /节点名称
整个节点的详细信息。
子节点数据长度和子节点的数量
三、监视器原理
1.首先有一个main线程。
2.在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)。
3.通过connect线程将注册的监听事件发送给zookeeper。
4.在zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
5.zookeeper监听到数据或路径变化时,会把这个消息发送给listener线程。
6.listener线程内部调用了process()方法
常见的监听:
监听节点数据变化
get path [watch]
监听子节点增减的变化
ls path [watch]
四、写数据的流程
1.客户端向zookeeper的server发送一个写数据的请求。
2.如果server不是leader,那么server会把接收到的请求进一步转发给leader,因为每个zookeeper的server里面有一个是leader。这个leader会将写请求广播给各个server。各个server写成功后会通知leader。
3.当leader收到大多数的server数据写成功了,那么就说明数据写入成功(一半)。成功后leader会告诉server数据写入成功。
4.server会进一步通知客户端数据写入成功。这个时候就认为是整个写操作成功。