Zookeeper数据模型

一、zookeeper基本数据模型

1.zk存储的数据是树形结构,可以理解为类似Linux文件目录

2.每一个节点都称为znode,它可以有自己的节点,也可以有数据

3.每个节点可以分为永久节点和临时节点,临时节点在客户端断开后(并且超过心跳机制设置的时间以后)会消失。session失效后,临时节点中的数据也会消失。

4.每个zk节点都有自己的版本号,可以通过命令来显示节点信息

5.每当节点数据发生变化以后,该节点版本号会累加(乐观锁)

6.删除或者修改节点时,如果版本号不匹配会报错

7.每个节点的数据不易过大

8.节点可以设置操作权限

二、zk客数据模型基本操作

1.启动zk服务  ./zkServer.sh start

2.打开客户端连接  ./zkCli.sh

3.进行znode节点操作

4.关闭连接(ctrl+c)

三、详细操作

打开连接后,输入help命令

Zookeeper数据模型_第1张图片

1.ls 和ls2命令

ls:查看每个节点

Zookeeper数据模型_第2张图片

输入ls2 path:会显示当前节点的信息

Zookeeper数据模型_第3张图片

dataVersion:数据版本号

aclVersion:权限版本号

ephemeralOwner:是永久节点还是临时节点

2.创建节点  create 

create  路径  数据内容  (acl是权限,这里先不使用)

Zookeeper数据模型_第4张图片

create -e 路径 数据   (是创建临时节点),根据ephemeralOener可以判断出

Zookeeper数据模型_第5张图片

create -s 路径 数据  (创建顺序节点)

Zookeeper数据模型_第6张图片
Zookeeper数据模型_第7张图片

3.获取数据

get 路径 

Zookeeper数据模型_第8张图片

4.修改

set  路径  数据

set /zookeeper/zk abc  

Zookeeper数据模型_第9张图片

dataVersion版本号发生变化

set 路径 数据 版本号(修改的时候可以带上版本号),如果版本号不是当前版本号,则会报错

5.删除节点

可以带版本号,可以不带,如果带版本号,需要跟当前数据匹配度的版本号,否则报错

Zookeeper数据模型_第10张图片

6.节点权限

getAcl  路径  (查看这个节点的权限)

Zookeeper数据模型_第11张图片

acl构成  [scheme:id:permissions]

①scheme:采用哪种权限机制

world:只有一个id,就是anyone

auth:认证登录  auth:user:password:[permissions]

digest:需要对密码进行加密才可以访问

digest:user:BASE64(SHA1(password)):[permissions]

ip:限制ip

super:拥有所有权限

② permissions:权限  cdrwa是权限字符串缩写

create 创建节点权限

delete 删除节点权限

read 获取节点权限

write 设置节点权限

admin 设置权限

二、watch机制

1.针对每一个节点操作,都会有一个监督者,watcher是一个时间

2.当监督的某个对象(znode)发生变化,就会触发watcher时间

3.zookeeper中的watcher是一次性的。出发后会立即销毁。

4.父节点,子节点增删改都会触发watcher时间

三、watch事件类型

1.父节点

创建父节点触发:NodeCreated

修改父节点触发:nodeCreateChanged事件

删除父节点触发:NodeDeleted事件

Zookeeper数据模型_第12张图片

2.子节点

创建子节点/删除子节点,都会是NodeChildrenChanged

Zookeeper数据模型_第13张图片

修改子节点,不会触发任何事件

你可能感兴趣的:(Zookeeper数据模型)