zookeepper用来管理调度分布式软件的数据,管理节点是一颗树,其节点称作为znode,可以用来存储数据,但是最大不能超过1M
每个节点称为一个znode. 每个znode由3部分组成:
1.stat:此为状态信息, 描述该znode的版本, 权限等信息.
2.data:与该znode关联的数据.
3.children:该znode下的子节点.
znode具有以下属性,具有
(1)watcher接口 当节点数据发生增删改时,发现消给客户端的watch,watch只能触发一次。
(2)数据访问, 原子性操作,具有相关不同的用户权限
(3)节点类型 (a)永久节点创建时类型确定 (b)临时节点依赖于生命周期,不能拥有子节点(c)递增计数,顺序节点
节点属性结构
client和server之间通过heartbeat来确认连接正常,这种状态称之为session,断开连接后session失效。
ZK在服务端的操作
我们可以通过操作返回的数据来设置不同的watch:
1.getData和exists:返回关于节点的数据信息
2.getChildren:返回孩子列表
读操作exists、getChildren和getData都被设置了watch,并且这些watch都由写操作来触发:create、delete和setData。
节点访问权限
数据节点没有“所有者”的概念。访问者利用id标识自己的身份,并获得与之相应的 不同的访问权限。
zooKeeper会话
一旦与ZooKeeper服务器连接成功,服务器会创建与客户端的一个新的对话。每个回话都有超时时段,这是应用程序在创建它时设定的。无论什么时候会话持续空闲长达一定时间,都会由客户端发送ping请求保持活跃(犹如心跳)。
利用zooInspecor工具操作节点