zookeeper学习笔记之-Zookeeper详细功能介绍与客户端框架使用

本文介绍了Zookeeper的功能,包括节点类型、Stat结构、Zxid概念、Watch机制及其常用命令。深入讲解了Zookeeper的ACL权限控制,展示了如何创建、设置和管理节点,以及使用Curator客户端解决的常见问题。此外,还提到了Zookeeper客户端在会话过期后的处理策略。
摘要由CSDN通过智能技术生成

节点类型(znode)

 

  1. 持久节点,所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点。
  2. 临时节点,和持久节点不同的是,临时节点的生命周期和客户端会话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。
  3. 持久顺序节点,这类节点的基本特性和持久节点是一致的。额外的特性是,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中,ZK会自动为给定节点名加上一个数字后缀,作为新的节点名。这个数字后缀的范围是整型的最大值。
  4. 临时顺序节点,类似临时节点和顺序节点

 

zookeeper默认对每个结点的最大数据量有一个上限是1M

 

Stat

 

ZooKeeper命名空间中的每个znode都有一个与之关联的stat结构,类似于Unix/Linux文件系统中文件的stat结构。 znode的stat结构中的字段显示如下,各自的含义如下:

 

  • cZxid:创建znode的事务ID。
  • mZxid:最后修改znode的事务ID。
  • pZxid:最后修改添加或删除子节点的事务ID。
  • ctime:表示从1970-01-01T00:00:00Z开始以毫秒为单位的znode创建时间。
  • mtime:表示从1970-01-01T00:00:00Z开始以毫秒为单位的znode最近修改时间。
  • dataVersion:表示对该znode的数据所做的更改次数。
  • cversion:这表示对此znode的子节点进行的更改次数。
  • aclVersion:表示对此znode的ACL进行更改的次数。
  • ephemeralOwner:如果znode是ephemeral类型节点,则这是znode所有者的 session ID。 如果znode不是ephemeral节点,则该字段设置为零。
  • dataLength:这是znode数据字段的长度。
  • numChildren:这表示znode的子节点的数量。

 

Zxid-后面讲zab算法会着重讲

 

类似于RDBMS中的事务ID,用于标识一次更新操作的Proposal ID。为了保证顺序性,该zkid必须单调递增。因此ZooKeeper使用一个64位的数来表示,高32位是Leader的epoch,从1开始,每次选出新的Leader,epoch加一。低32位为该epoch内的序号,每次epoch变化,都将低32位的序号重置。这样保证了zkid的全局递增性。

 

Watch

 

一个zk的节点可以被监控,包括这个目录中存储的数据的修改,子节点目录的变化,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等。

watch机制官方说明:一个Watch事件是一个一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端,以便通知它们。

可以注册watcher的方法:getData、exists、getChildren。

可以触发watcher的方法:create、delete、setData。连接断开的情况下触发的watcher会丢失。

一个Watcher实例是一个回调函数,被回调一次后就被移除了。如果还需要关注数据的变化,需要再次注册watcher。

 

New ZooKeeper时注册的watcher叫default watcher,它不是一次性的,只对client的连接状态变化作出反

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值