Znode节点概念
Zookeeper是一个分布式的协调服务,它通过维护一个分层的数据结构来存储和管理数据。这个数据结构被称为znode节点。每个znode节点在Zookeeper的命名空间中都有一个唯一的路径,类似于文件系统中的路径。
Zookeeper中的znode节点有以下几种类型:
-
永久节点(Persistent znode):永久节点在创建后将一直存在于Zookeeper中,直到被显示删除。它们用于存储持久化数据,并且能够拥有子节点。
-
临时节点(Ephemeral znode):临时节点在创建它的客户端断开连接后将自动被删除。它们用于临时性的数据存储,例如客户端的临时状态或会话信息。
-
顺序节点(Sequential znode):顺序节点在创建后会自动分配一个唯一的递增编号。这些编号被用于在有序的集合中进行排序,以便在分布式环境中实现有序操作。
除了以上类型之外,znode节点还可以具有其他特性:
-
数据(Data):每个znode节点可以存储一些数据,它们以字节数组的形式存在。
-
版本号(Version):每个znode节点都有一个与之关联的版本号,用于实现乐观并发控制。
-
访问控制列表(ACL):Zookeeper使用ACL来控制对znode节点的访问权限。
-
监听(Watcher):Zookeeper允许客户端对特定的znode节点注册监听器,以便在节点发生变化时得到通知。
znode节点是Zookeeper中的核心概念,它提供了一个灵活且可靠的分布式数据存储和协调机制,广泛应用于分布式系统中的各种场景。
进入到zkCli.sh客户端,通过下面的命令可以查看zk节点信息,默认是一个节点
ls /
zkCli.sh常见命令
create 节点名路径
这个时候通过ls /命令可以再次查看根路径下的节点信息,不难发现,现在是一共有两个节点了
2、创建并保存数据
create 节点名路径 数据
3、获取节点中的数据
get 节点名路径 #注意:创建和获取数据,节点前都必须加上路径符号/,否则就会报错
创建节点命令
持久节点和持久序列节点
一、持久节点
1、认识持久节点
创建出的节点,在会话结束后依然存在,用来保存数据
2、创建持久节点
create 节点路径 #就是不带任何参数执行创建命令,创建出的节点就叫做持久节点
二、持久序号节点
1、认识持久序号节点
创建出的节点,根据先后顺序,会在节点后面加上一个数值,越后执行数值越大,适用于分布式锁的应用场景,单调递增
2、创建持久序号节点
ctreate -s 节点路径
临时节点(重点)
一、认识临时节点
临时节点是在本次会话中一直存在,会话结束后,自动被删除的。通过这个特性,zk可以实现服务注册与发现的效果,这里就涉及到了临时节点如何维持心跳的问题!
二、临时节点在会话结束后消失的原理
运用了session的工作机制
二、创建临时节点方法
create -e 节点路径 #为什么是-e?因为取得是ephemeral的首字母
临时序号节点
一、认识临时序号节点
类似于持久化序号节点,主要应用于临时的分布式锁
二、创建方式
create -e -s 节点路径
Container容器节点
一、什么是容器节点
当容器中没有任何子节点,该容器节点会被zk定期删除(60s)
二、创建方式
create -c 节点路径
三、验证当这个容器节点下的子节点全部删除后,容器节点会不会被zk服务器删除
1、创建子节点
2、删除子节点
删除子节点的语法是
delete 节点路径
3、验证容器节点是否存在
TTL节点
一、定义
可以指定节点的到期时间,到期后会被zk定时删除。只能用过系统配置开启
二、配置方式
在项目的配置文件中配置即可
查询节点命令
一、常规查询
查询节点下的信息
ls 节点路径
查询节点下的所有节点信息
ls -r 节点路径 #-r表示递归查询
二、查询详细数据
首席按先了解Zookeeper的组成
通过命令查看Znode节点详细信息(stat元数据)
get -s 节点路径
元数据对应的作用:
删除节点命令
一、普通删除
1、删除一层节点
delete 节点路径
2、如果想要删除的节点还有字节点
deleteall 目标节点路径
二、乐观锁删除
1、了解zk节点乐观锁
当我们创建了一个新的节点,元数据中会有一个字段专门存当前节点的版本号,如果有人对这个节点进行了修改,那么版本号+1
2、乐观锁删除方法
delete -v 版本号 节点路径 # -v是version的简写,如果输入的版本号不是当前节点的版本号,就会报删除失败,版本号无效
给节点添加数据
添加数据命令
set 节点路径 数据
Watch机制监听节点
一、创建一次性监听
1、创建一个新节点
2、通过下面的命令以Watch机制来监听节点
get -w 节点路径
3、在另一个客户端对这个节点进行改动,那么监听该节点的那台服务器就会提示:你监听的节点数据发生了变化
4、当我再次在右边的客户点对test9节点数据发生修改,那么左边的监听就失效了
二、创建持续的监听
1、当对某个节点通过get -w 节点路径进行监听
2、在另一台客户端上修改这个节点的数据
3、在监听的这个客户端上继续通过get -w 节点路径来获取数据,那么又一次给节点上了监听
文章来源:https://www.toymoban.com/news/detail-772014.html
至此,关于Zookeeper操作Znode节点的常见命令以及Watch机制监听节点的技术点介绍完毕,后续还会持续更新相关技术,敬请期待!文章来源地址https://www.toymoban.com/news/detail-772014.html
到了这里,关于Zookeeper篇——深入认识和学习Zookeeper节点-Znode,涵盖概念以及详细操作节点命令,保姆级教程,超详细、超全面!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!