zookeeper类似linux的文件系统,由根“/”开始的路径,叫做节点znode,znode下可以有子节点,每个节点可以有数据
节点znode的类型有:永久的,临时,永久且有序,临时且有序。 有序就是create创建节点时如果已经存在,就在后面的计数增加,类似windows的文件重名时的副本2,3 等等
节点操作有:create创建,get读取,set修改,delete删除当前节点,不能有子节点(类似 rm 删除文件夹),rmr 删除当前节点及子节点,watcher监听节点
可以监听到节点的事件:节点创建,节点数据修改,节点删除,【子节点创建于删除会通知父节点的监听器】
zookeeper会持久化到zoo.cfg的dataDir 目录
zookeeper的以上性质,决定zookeeper可以做:
集群管理、统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式通知协调等
更多的是被其他程序用来做主从选举:
所有的节点向zk的某个路径下注册创建临时节点,编号【最小】的为主节点,从节点会监控主节点是否失效(zk监听事件),从节点只监听它【小的】一个【临近】节点,避免【惊群现象】