【Zookeeper】Zookeeper内部的数据模型

Znode节点-数据结构

Zookeeper内部的数据模型

1 zk是如何保存数据的

zk中的数据是保存在节点上的,节点就是znode,多个znode之间构成一颗树的目录结构

Zookeeper的数据模型是什么样子呢?它很像数据结构当中的树,也很像文件系统的目录

树是由节点所组成,zookeeper的数据存储也同样是基于节点,这种节点叫做Znode

但是,不同于树的节点,Znode的引用方式是路径引用,类似于文件路径

复制代码
/动物/猫
/汽车/宝马

这样的层级结构,让每一个Znode节点拥有唯一的路径,就像命名空间一样对不同信息做出清晰的隔离

2 zk中的znode是什么样的结构

zk中的znode,包含了四个部分

  • data:保存数据

  • acl:权限,定义了什么样的用户能够操作这个节点,且能够进行怎样的操作

    c:create创建权限,允许在该节点下创建子节点
    w:write更新权限,允许更新该节点的数据
    r:read读取权限,允许读取该节点的内容以及子节点的列表信息
    d:delete删除权限,允许删除该节点的子节点
    a:admin管理着权限,允许对该节点进行acl权限设置

  • stat:描述当前znode的元数据

  • child:当前节点的子节点

3 zk中节点znode的类型

持久节点

创建出的节点,在会话结束后依然存在,保存数据

持久序号节点

创建出的节点,根据先后顺序,会在节点之后带上一个数值

临时节点

临时节点是在会话结束后,自动被删除的,通过这个特性,zk可以实现服务注册与发现的效果,那么临时节点是如何维持心跳

创建临时节点

复制代码
create -e /test6 "hello"

关闭会话后,创建的临时节点将会被自动删除

临时序号节点

和持久序号节点相同,适用于临时的分布式锁

ephemeralOwner:如果当前节点是临时节点,该值是当前节点所有者的session id,如果节点不是临时节点,则该值为0

container节点

(3.5.3版本新增):container容器节点,当容器中没有任何子节点,该容器节点会被zk定期删除(60s)

TTL节点

可以指定节点的到期时间,到期后被zk定时删除,只能通过系统配置 zookeeper.extendTypesEnabled=true开启

相关推荐
晚风吹人醒.11 分钟前
SSH远程管理及访问控制
linux·运维·ssh·scp·xshell·访问控制·远程管理
Uncertainty!!1 小时前
Linux多用户情况下个别用户输入密码后黑屏
linux·远程连接
Tony Bai1 小时前
【分布式系统】03 复制(上):“权威中心”的秩序 —— 主从架构、一致性与权衡
大数据·数据库·分布式·架构
necessary6532 小时前
使用Clion查看linux环境中的PG源码
linux·运维·服务器
小猪佩奇TONY3 小时前
Linux 内核学习(14) --- linux x86-32 虚拟地址空间
linux·学习
Lam㊣3 小时前
Centos 7 系统docker:更换镜像源
linux·docker·centos
FL16238631293 小时前
win11+WSL+Ubuntu-xrdp+远程桌面闪退+黑屏闪退解决
linux·运维·ubuntu
石头5303 小时前
Kubernetes监控全栈解决方案:从零搭建Prometheus+Grafana监控体系
linux
ha20428941943 小时前
Linux操作系统学习记录之---TcpSocket
linux·网络·c++·学习
AOwhisky4 小时前
Linux逻辑卷管理:从“固定隔间”到“弹性存储池”的智慧
linux·运维·服务器