`

ZooKeeper 节点类型

阅读更多

ZooKeeper 节点是有生命周期的,这取决于节点的类型。在 ZooKeeper 中,节点类型可以分为持久节点(PERSISTENT )、临时节点(EPHEMERAL),以及时序节点(SEQUENTIAL ),具体在节点创建过程中,一般是组合使用,可以生成以下 4 种节点类型。

1、持久节点(PERSISTENT)


所谓持久节点,是指在节点创建后,就一直存在,直到有删除操作来主动清除这个节点——不会因为创建该节点的客户端会话失效而消失。


 2、持久顺序节点(PERSISTENT_SEQUENTIAL)

这类节点的基本特性和上面的节点类型是一致的。额外的特性是,在ZK中,每个父节点会为他的第一级子节点维护一份时序,会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属性,那么在创建节点过程中,ZK会自动为给定节点名加上一个数字后缀,作为新的节点名。这个数字后缀的范围是整型的最大值。


3、临时节点(EPHEMERAL)

和持久节点不同的是,临时节点的生命周期和客户端会话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。


4、临时顺序节点(EPHEMERAL_SEQUENTIAL)

 可以用来实现分布式锁

 

客户端调用create()方法创建名为“_locknode_/guid-lock-”的节点,需要注意的是,这里节点的创建类型需要设置为EPHEMERAL_SEQUENTIAL。
客户端调用getChildren(“_locknode_”)方法来获取所有已经创建的子节点,注意,这里不注册任何Watcher。
客户端获取到所有子节点path之后,如果发现自己在步骤1中创建的节点序号最小,那么就认为这个客户端获得了锁。
如果在步骤3中发现自己并非所有子节点中最小的,说明自己还没有获取到锁。此时客户端需要找到比自己小的那个节点,然后对其调用exist()方法,同时注册事件监听。
之后当这个被关注的节点被移除了,客户端会收到相应的通知。这个时候客户端需要再次调用getChildren(“_locknode_”)方法来获取所有已经创建的子节点,确保自己确实是最小的节点了,然后进入步骤3。

分享到:
评论

相关推荐

    zookeeper节点类型和java客户端创建zk节点

    NULL 博文链接:https://chengjianxiaoxue.iteye.com/blog/2277358

    ZooKeeper 节点类型1

    在 ZooKeeper 中,节点类型可以分为持久节点(PERSISTENT )、临时节点(EPHEMERAL),以及时序节点(SEQUENTIAL ),具体在节

    zookeeper节点类型详解

    今天小编就为大家分享一篇关于zookeeper节点类型详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    深入解析Zookeeper:核心特性与节点类型全景剖析

    详细介绍了Zookeeper的五种节点类型,包括持久化节点、持久化顺序节点、临时节点、临时顺序节点和容器节点,每种类型都有其独特的应用场景和功能。文章还探讨了Zookeeper在分布式系统中的经典应用,如配置中心、注册...

    zookeeperDemo

    zookeeper节点操作 zookeeper节点操作 节点创建,删除,遍历 节点数据读写 节点类型 节点类型 持久节点 PERSISTENT 持久顺序节点 PERSISTENT_SEQUENTIAL 临时节点 EPHEMERAL 临时顺序节点 EPHEMERAL_SEQUENTIAL ...

    第6章 Zookeeper 2 6.1. Zookeeper入门 2 6.1.1. 概述 2 6.1.2. 特点 3 6.1.3

    6.4.1. 节点类型 29 6.4.2. Stat结构体 29 6.4.3. 监听器原理(面试重点) 30 6.4.4. Paxos算法(扩展) 32 6.4.5. 选举机制(面试重点) 34 6.4.6. 写数据流程 35 6.5. 企业面试真题 37 6.5.1. 请简述ZooKeeper的...

    zookeeper面试专题.pdf

    4.四种类型的 znode 5.Zookeeper 通知机制 6.Zookeeper 做了什么? 7.zk 的命名服务(文件系统) 8.zk 的配置管理(文件系统、通知机制) 9.Zookeeper 集群管理(文件系统、通知机 制) 10.Zookeeper 分布式锁(文件...

    第一课:zookeeper 特性与节点说明1

    基于3.4它包含以下新功能动态重新配置本地会议新节点类型:容器,TTL原子广播协议的SSL支持删除观察者的能力多线程提交处理器升级到Netty 4.1Maven

    支持.Net Core的ZooKeeper异步客户端.zip

    在事件触发参数会有个类型为 "EventType" 的属性 "Type",通过该属性可以清楚的区分出节点变更的原因。 为什么要写这个程序,它与 "ZooKeeperEx" 有什么区别 ? 官方提供的组件,只提供了基本的api,在正常的zk使用...

    zookeeper-learning-1

    /Users/robin/Desktop/第六期/25-Zookeeper特性与节点数据类型详解-Fox/1. Zookeeper特性与节点数据类型详解(1).pdf /Users/robin/Desktop/第六期/26-Zookeeper经典应用场景实战(一)-Fox/2. Zookeeper经典应用场景...

    node-zookeeper:Apache Zookeeper的node.js客户端

    :rocket: 自4.8.0版以来新增功能支持Apache ZooKeeper服务器v3.5.5中引入的新节点类型: Container和TTL :rocket: :party_popper: 自4.7.0版以来的新功能 :party_popper: 安装过程比以往更快。 如果您是Mac OS X...

    分布式专题-分布式协调服务01-初步认识Zookeeper

    zookeeper 安装部署环境部署zookeeper安装&测试zookeeper节点特性zookeeper集群搭建注册中心原理zookeeper客户端命令详解Observer事务请求会话状态zookeeper应用场景后记 前言 分布式协调服务,我们主要讲四个方面 ...

    Zookeeper面试题 28道1

    1. ZooKeeper 是什么 2. ZooKeeper 提供了什么 3.Zookeeper 文件系统 5. 四种类型的数据节点 Znode 6. Zooke

    分布式协调工具-ZooKeeper实现动态负载均衡

    节点类型  a、Znode有两种类型: 短暂(ephemeral)(create -e /app1/test1 “test1” 客户端断开连接zk删除ephemeral类型节点)  持久(persistent) (create -s /app1/test2 “test2” 客户端断开连接zk不...

    ZooKeeper面试题(2020最新版)

    5. 四种类型的数据节点 Znode6. Zookeeper Watcher 机制 — 数据变更通知7. 客户端注册 Watcher 实现8. 服务端处理 Watcher 实现9. 客户端回调 Watcher10. ACL 权限控制机制11. Chroot 特性12. 会话管理13. 服务器...

    一文彻底理解ZooKeeper分布式锁的实现原理

    一、写在前面 本文基于比较常用的Curator这个开源框架,聊一下这个...如果大家对zk还不太了解,建议先百度一下,快速了解一些基本概念,比如zk有哪些节点类型等等。 参见上图。zk里有一把锁,这个锁就是zk上的一个节点

    Zookeeper中几个重要的内部原理

    但是,Zookeeper 工作时,是由一个节点为 Leader,其他则为 Follower,Leader 是通过内部的选举机制临时产生的。 3、以一个简单的例子来说明选举的过程 假设有五台服务器组成的 Zookeeper 集群,它们的 id 是从 1-5...

    zkdeployment:基于 ZooKeeper 的自动化部署框架

    有一种文本表示形式,可让您对某些高级语义进行建模,例如节点类型、符号链接和属性链接。 有关详细信息,请参阅 在上面的示例中,有一个名为myfoo的节点,类型为foo具有version和fuzz属性。 它是who的子节点。 ...

Global site tag (gtag.js) - Google Analytics