Zookeeper(六)数据模型

Zookeeper的数据模型详解 1. 背景介绍 1.1 分布式系统的挑战 在当今的大数据时代,分布式系统已经成为了处理海量数据和提供高可用服务的关键技术。然而,分布式系统的设计和实现面临着诸多挑战,如数据一致性、节点故障处理、负载均衡等。为了解决这些问题,研究人员和工程师们开发了许多分布式协调服务,如Chubby、Paxos、Ra 阅读详情

Zookeeper数据模型:

Zookeeper的结构类似标准的文件系统,但这个文件系统中没有文件和目录,而是统一使用节点(node)的概念,称为znode。Znode作为保存数据的容器(限制在1mb以内),也构成了一个层次化的命名空间。

 

znode

zookeeper目录中的每一个节点对应着一个znode,每个znode维护着一个属性结构,它包含数据的版本号、时间戳、等信息。Zookeeper就是通过这些属性来实现它特定的功能。每当znode的数据改变时,相应的版本号会增加,每当客户端查询、更新和删除数据时,也必须提供要被操作的znode版本号,如果所提供的数据版本号与实际的不匹配,那么将会操作失败。

节点属性:

属性

描述

czxid

节点被创建的zxid值

mzxid

节点被修改时zxid值

ctime

节点创建的时间

mtime

节点最后一次的修改时间

vesion

节点的版本号

cversion

节点所拥有的子节点被修改的版本号

aversion

节点的ACL被修改的版本号

dataLength

节点数据的长度

numChildren

节点拥有子节点的个数

ephemeralOwner

如果节点为临时节点,那么它的值为这个节点拥有者的session ID;负责它的值为0

Znode是客户端访问的zookeeper的主要实体,它包含了以下主要特征:

(1)  Watch

Znode状态发生改变时(增删改等操作),watch (监视器)机制可以让客户端得到通知,并且仅仅只会触发一次watch。

在读操作exists、getChildren和getData上可以设置监视器,这些监视器可以被写操作create、delete和setData触发。ACL相关的操作不参与任何监视器。当一监视器触发时,会产生一个事件,这个监视器和触发它的操作共同绝地沟了监视器事件类型。

*  当所监视的znode被创建子节点、删除或其他数据更新时,设置在exists操作上的监视器将会被触发。

*  当所监视的znode被删除或其更新时,设置在getData上的监视器将会被触发,创建znode不会触发getData上的监视器,因为getData操作成功执行的前提是znode必须已经在。

*  当所监视的znode的一个子节点被创建或删除时,或监视的znode自己被删时,设置在getChildren操作上的监视器将会被触发。

设置监视器的操作及对应的触发器

 

设置触发

器的操作

触发触发器的操作/受影响的节点

create

 

delete

 

setData

znode

子节点

znode

子节点

 

 

 

 

 

 

 

Exists

NodeCreated

 

NodeDeleted

 

NodeDataChanged

getData

 

 

NodeDeleted

 

NodeDataChanged

getChildren

 

 

NodeDeleted

NodeDeleted

 


(2)  数据访问控制

每个znode创建时间都会有一个ACL列表,用于决定谁可以执行那些操作。

(3)  临时节点

Zookeeper节点有两种:临时节点和持久节点。节点类型在创建时确定,并且不能修改。临时节点生命周期依赖创建它的会话,一旦会话结束,临时节点将会被删除。临时节点不允许有子节点。

(4)  顺序节点

当创建znode 时设置了顺序节点,那么该znode路径之后便会附加一个递增的计数,这个计数对于此节点的父节点来说是唯一的。

例如:一个客户端请求创建一个名为/a/b-的顺序节点,则所创建znode的名字可能是a/b-5,稍后另外一个名为/a/b-的顺序节点被创建,计数器会给出一个更大的值来保证znode名称的唯一性,例如/a/b-6。

Zookeeper数据节点可视化查看工具 Zookeeper数据节点可视化查看工具; 下载解压后即可使用; 内有说明文本。 Zookeeper数据节点可视化查看工具; 下载解压后即可使用; 内有说明文本。 Zookeeper数据节点可视化查看工具; 下载解压后即可使用; 内有说明文本。 立即下载

相关推荐

Mac终端SSH连接腾讯云服务器保姆级教程(附秘钥管理技巧)

本文提供Mac终端SSH连接腾讯云服务器的详细教程,涵盖密钥生成、权限设置、连接优化及高级管理技巧。通过清晰的步骤和实用配置,帮助用户安全高效地管理远程服务器连接,特别适合开发者和运维人员参考。

weixin_29248313的博客 456

Zookeeper特性与节点数据类型详解

ZooKeeper 是一个开源的,是Apache Hadoop 的一个子项目,。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。ZooKeepe。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理,从而用来维护和监控存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到。

weixin_43134177的博客 1897

从FER2013到AffectNet:表情识别数据集十年演进史与你的项目选型攻略

本文回顾了从FER2013到AffectNet等主流人脸表情识别数据集的十年演进历程,详细分析了各数据集的特点、适用场景及技术突破。针对不同项目需求,提供了从移动端应用到高精度研究的选型策略,特别强调AffectNet在现代FER项目中的核心价值,并给出混合数据集构建的实战方案。

weixin_26808439的博客 522

zookeeper节点类型、常用命令及ACL管理权限

zk节点和节点类型节点类型:1、PERSISTENT--持久化目录节点客户端与zookeeper断开连接后,该节点依旧存在2、PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号3、EPHEMERAL-临时目录节点客户端与zookeeper断开连接后,该节点被删除,临时节点不可以创建子节点4、EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点。

mg1123的博客 1315

告别报错!Win10下Autodock Vina 1.2.3保姆级安装与避坑指南

本文提供了Win10系统下Autodock Vina 1.2.3的完整安装与实战指南,涵盖环境配置、分子文件预处理、对接参数优化及结果分析等关键步骤。通过详细的避坑技巧和优化方案,帮助用户高效完成分子对接任务,特别适合生物信息学研究人员和药物发现领域的初学者。

weixin_29969209的博客 403

springboot + netty 实现多客户端登录 超出设备 并下线

本文档旨在详细描述多平台登录控制的需求和实现方案。当前系统仅支持单设备登录,需扩展为支持多设备同时在线,并提供多种登录策略。文档详细列出四种策略:单平台登录、双平台登录、三平台登录和多平台同时在线,每种策略的具体限制和支持平台。技术实现方案包括数据结构设计、NettyUtils 工具类方法、WebSocketHandler 修改,以及相应的测试方案

Likefr 1878

ZooKeeper面试必备:ZooKeeper4种数据节点类型、了解事务ID

ZooKeeper一共有四种节点类型,但从整体来看主要是持久节点类型、临时节点类型这两种,另外两种类型只是在以上两种节点类型基础上增加了顺序的特性。,是不能在临时节点下面创建任何子节点的。原因大概是临时节点子节点没有存在的意义,创建子节点的场景大多是基于持久节点的场景,这种设计也可以防止对临时节点的误用。ZooKeeper数据节点的版本概念和CAS操作的版本概念是一样的,同样是在多线程环境下,通过乐观锁这种无锁操作来保证线程安全性。对数据节点的每次更新,都会对比数据节点的version是否是预期值,只有。

程序员-杨胡广的博客 2743

给新人的储能系统入门图解:从电芯到EMS,一张图看懂BESS里那些‘黑话’

本文通过视觉化拆解储能系统,从电芯到EMS详细解析BESS中的关键组件和行业术语。涵盖电芯参数、模组组装、PCS功能、BMS与EMS分工,以及SOC、DOD等关键运维参数,帮助新人快速理解储能系统的核心技术和应用场景。

weixin_42522964的博客 594

Zookeeper的数据结构以及常用命令使用

根目录中存在子目录,子目录中包含子文件,数据都在子文件中存储,而Zookeeper是在根节点下包含很多子节点,但是每一个节点都可以存储自己的一些数据和当前节点的信息,允许存储的数据大小为1M。Zookeeper的数据结构和标准的Unix文件系统类似,都存在一个(/)根,在Unix中数据结构被称为目录(根目录、子目录),而Zookeeper中的数据结构都被称为节点(根节点、子节点)。注意:如果要删除的节点中包含子节点,那么会删除失败,会提示节点不为空,只有当节点中不包含任何子节点时,才可以被删除。

11 2689

在C++中,NULL和nullptr有什么区别?

这两个定义导致了冲突,C++中的NULL如果和C语言一样也是(void *)0指针,而C++不允许void*隐式转换成其它指针类型,那NULL就无法表示空指针了。因此,使用 nullptr可以增加代码的清晰性,避免类型安全问题。即使在混合C++和C代码时,nullptr也提供了一个明确无误的空指针表示,达到兼容的目的。C++11 引入 nullptr 彻底解决了这些问题,提高语言的安全性、清晰性和现代性。在了解NULL和nullptr背后的故事之后,相信大家以后再也不会用NULL了。

hebhljdx的博客 678

LangGraph教程8:LangGraph流式处理

流式处理可显著提升基于LLM应用的响应性。LangGraph支持两种流式模式:values模式返回每一步的完整结果,适合需要完整上下文处理的场景;updates模式仅返回增量变化,适用于实时更新需求。示例代码展示了如何用create_react_agent实现这两种模式,其中values模式完整记录处理流程,updates模式逐步输出结果。通过异步迭代输出流,开发者可以灵活选择适合应用场景的流式处理方式。

Cachel Wood的博客 620

zookeeper中节点信息的查看方式

1.先到zookeeper的bin目录下 2、输入命令./zkCli.sh 3.输入命令 ls / 4、输入命令 ls /(节点名称) 即可查看想查看的节点信息

qq_44073614的博客 1万+

【Proteus仿真】AT89C51单片机中断系列仿真——INT0中断控制LED小灯/INT0和INT1中断控制数码管

本文介绍了基于51单片机外部中断(INT0/INT1)的四个实践案例:1)INT0控制LED开关;2)INT0中断实现数码管计数/清零;3)INT0中断构建秒表功能(启动/暂停/清零);4)INT0/INT1双中断独立控制两组数码管计数。每个案例包含电路原理图、接线说明及完整源代码,重点演示了外部中断在硬件控制中的应用方法。附加硬件工程师笔试面试资料链接,涵盖器件知识、Multisim教程等内容,适合嵌入式学习者参考实践。(149字)

XU157303764的博客 1911

zookeeper(六)数据模型

Zookeeper数据模型: Zookeeper的结构类似标准的文件系统,但这个文件系统中没有文件和目录,而是统一使用节点(node)的概念,称为znode。Znode作为保存数据的容器(限制在1mb以内),也构成了一个层次化的命名空间。   znode zookeeper目录中的每一个节点对应着一个znode,每个znode维护着一个属性结构,它

wackycrazy的专栏 383

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【Hadoop】ZooKeeper数据模型Znode

前面提过,Zookeeper相当于**文件系统+通知机制**。既然是文件系统,那就涉及数据模型。

m0_60511809的博客 2247

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Apache ZooKeeper - ZooKeeper 数据模型回顾

文章目录Pre数据模型概述znode 节点类型与特性持久节点临时节点有序节点节点小结节点的状态结构Watch 机制实现分布式通知API 使用Watch 机制的底层原理 Pre 前面我们梳理了Zk的核心功能 , ZooKeeper 作为一个分布式协调服务,提供了在分布式环境下一致性问题的解决方案 。 今天 我们再来回顾下基础知识 基本分为三大模块: 数据模型 Watch 监控 ACL 权限控制 数据模型 概述 通过 ZooKeeper 提供的 create 命令来创建几个节点,分别是:“/

小工匠 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Zookeeper数据模型

ZooKeeper的数据模型,在结构上和标准文件系统的非常相似,拥有一个层次的命名空间,都是采用树形层次结构,ZooKeeper树中的每个节点被称为—Znode。和文件系统的目录树一样,ZooKeeper树中的每个节点可以拥有子节点。但也有不同之处: 1.Znode兼具文件和目录两种特点。既像文件一样维护着数据、元信息、ACL、时间戳等数据结构,又像目录一样可以作为路径标识的一部分,并可以具有子...

王傲旗的大数据之路 4914

ZooKeeper数据模型你懂吗?

ZooKeeper数据节点你懂吗?那数据节点有什么类型?数据节点的版本呢?听说ZooKeeper还有事务ID,你知不知道啊?还有Watcher机制呢?ZooKeeper作为一个典型的分布式数据一致性的解决方案,ZooKeeper的技能点是Java程序员进阶所必须掌握。如果上面的问题你还不懂的话,不妨看看下文对这些概念的解析~

JavaSouth南哥 3396

ZooKeeper中的数据模型是怎样的?

ZNode 是 ZooKeeper 中的基本数据单元,类似于文件系统中的文件或目录。每个 ZNode 都有一个唯一的路径标识符,路径以斜杠开头,例如。ZNode 可以包含数据(data)以及子节点(children),形成一个树状结构。路径(Path)路径是 ZNode 的唯一标识符,类似于文件系统的路径。路径必须唯一,并且可以嵌套,形成层次结构。路径中的每个部分(segment)必须符合 ZooKeeper 的命名规则,不允许包含某些特殊字符(如空格、斜杠等)。数据(Data)

qq_33240556的博客 971

ZooKeeper的数据模型与监听机制

        相信大家在看了《ZooKeeper入门(概念+shell操作)》后对ZooKeeper已经有了一定的基础,本篇博客小菌则为大家带来的是关于ZooKeeper的数据模型与监听机制!让大家对ZooKeeper的底层原理有一个更深的认知!      &nbsp...

大数据梦想家 5271

ZooKeeper 数据模型

ZooKeeper 拥有层次化的命名空间,类似分布式文件系统,但每个节点不仅能有子节点,还可关联数据。节点路径为规范的绝对路径,用斜杠分隔,无相对引用。客户端可对 ZNode 设置监听,ZNode 发生变化时触发监听并清除。监听触发后,ZooKeeper 会向客户端发送通知。

luxideyao的专栏 1145

zookeeper数据模型

Zookeeper的数据模型类似于Unix标准文件系统,只是文件目录里面没有文件。而是统称为Znode。Znode可以存放数据,以二进制的形式(默认不超过1MB)。这样就构成了类似文件系统的层次化命名空间。其实就是树形结构。 下图是Zookeeper节点的数据模型: Znode从持久化的角度来说,可以分类两类: 持久化节点(PERSISTENT Node):创建新增删除等操作会更新到事务...

qianshanding0708的博客 2463

Zookeeper的数据模型和节点类型

除此以外,他们必须是唯⼀的,也就是说每⼀个路径只有⼀个表示,因此这些路径不能改变。Znode 具有原⼦性操作,读操作将获取与节点相关的所有数据,写操作也将 替换掉节点的所有数据。持久节点:⼀旦创建、该数据节点会⼀直存储在zk服务器上、即使创建该节点的客户端与服务端的会话关闭了、该节点也不会被删除。数据仅存储在内存是很不安全的,zk采⽤事务⽇志⽂件及快照⽂件的⽅案来落盘数据,保障数据在不丢失的情况下能快速恢复。有序节点:不是⼀种单独种类的节点、⽽是在持久节点和临时节点的基础上、增加了⼀个节点有序的性 质。

完全体 1100

Zookeeper数据模型与Watch机制

ZooKeeper 中的数据模型是一种树形结构,非常像电脑中的文件系统,有一个根文件夹,下面还有很多子文件夹。ZooKeeper 的数据模型也具有一个固定的根节点(/),我们可以在根节点下创建子节点,并在子节点下继续创建下一级节点。ZooKeeper 树中的每一层级用斜杠(/)分隔开,且只能用绝对路径(如“get /work/task1”)的方式查询 ZooKeeper 节点,而不能使用相对路径。

愿万事胜意 1万+
上一篇: android权限列表
下一篇: Zookeeper(七)分布式锁
胸口碎大石_
博客等级 码龄17年 1154粉丝 82原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值