文件系统
1,类似于linux,根节点是、
2,zookeeper的文件系统寻址只能通过绝对路径
3,不存在文件也不存在目录 znode
4,znode的分类:
持久的znode
创建持无编号节点
[zk: hadoop102:2181(CONNECTED) 17] create /bb01 123
创建持久有编号的节点
[zk: localhost:2181(CONNECTED) 1] create -s /rr test01
Created /rr0000000005
临时的znode
当前客户端退出的时候,会删除临时节点
创建临时节点
[zk: hadoop102:2181(CONNECTED) 19] create -e /bb02 1234567
创建临时有编号的节点
[zk: localhost:2181(CONNECTED) 2] create -e -s /ss 12345
Created /ss0000000006
节点的编号是从父目录的时候开始
有编号个无编号的区别
a,有编号节点可以反复创建
b,无编号节点只能创建一次
5,临时节点不允许有子节点
6,有几个节点,就保留几份,但是数据完全相同
监听机制
对数据进行监控,监听对象为znode
常见监听:
1,节点变化
2,数据变化
注册监听
ls path watch
get path watch
exist path watch
触发监听
create path watch
set path watch
delete path watch
rmr path watch
应用场景
1,命名服务
2,配置文件的管理
3,集群管理
4,锁
监听原理:
1,首先有一个main()线程
2,在main()线程中创建zookeeper客户端,这时会创建两个线程
一个负责网络连接通信(connet),一个负责监听(listener)
3,通过connect线程将注册的监听的监听发给zookeeper
4,zookeeper将注册的监听增加到监听列表中
5,zookeeper监听到数据或者路径有变化,就将这个消息发给listener
6,listener线程内部调用process()方法