Zookeeper篇——深入认识和学习Zookeeper节点-Znode,涵盖概念以及详细操作节点命令,保姆级教程,超详细、超全面!!!

Znode节点概念

Zookeeper是一个分布式的协调服务,它通过维护一个分层的数据结构来存储和管理数据。这个数据结构被称为znode节点。每个znode节点在Zookeeper的命名空间中都有一个唯一的路径,类似于文件系统中的路径。

Zookeeper中的znode节点有以下几种类型:

  1. 永久节点(Persistent znode):永久节点在创建后将一直存在于Zookeeper中,直到被显示删除。它们用于存储持久化数据,并且能够拥有子节点。

  2. 临时节点(Ephemeral znode):临时节点在创建它的客户端断开连接后将自动被删除。它们用于临时性的数据存储,例如客户端的临时状态或会话信息。

  3. 顺序节点(Sequential znode):顺序节点在创建后会自动分配一个唯一的递增编号。这些编号被用于在有序的集合中进行排序,以便在分布式环境中实现有序操作。

除了以上类型之外,znode节点还可以具有其他特性:

  1. 数据(Data):每个znode节点可以存储一些数据,它们以字节数组的形式存在。

  2. 版本号(Version):每个znode节点都有一个与之关联的版本号,用于实现乐观并发控制。

  3. 访问控制列表(ACL):Zookeeper使用ACL来控制对znode节点的访问权限。

  4. 监听(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 节点路径来获取数据,那么又一次给节点上了监听
 

至此,关于Zookeeper操作Znode节点的常见命令以及Watch机制监听节点的技术点介绍完毕,后续还会持续更新相关技术,敬请期待!

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值