IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ZooKeeper的部分原理认识 -> 正文阅读

[大数据]ZooKeeper的部分原理认识

在这里插入图片描述

一、Zookeeper中znode子节点

ZooKeeper采用了类似文件系统的的数据模型,其节点构成了一个具有层级关系的树状结构。节点以绝对路径表示,不存在相对路径,且路径最后不能以 / 结尾(根节点除外)。

  • 临时节点:存活时间依赖于客户端会话,当会话结束,临时节点将会被自动删除(当然也可以手动删除临时节点)。主要用于线上线下的服务分类。
  • 持久节点:存活时间不依赖于客户端会话,只有客户端在显式执行删除节点操作时,节点才消失。
### 创建节点:节点为/module1 数据为module1
create /module1 module1
### 创建临时节点:-e 指定
create -e /module1/app1 app1
### 查看节点:
get /module1/app1
  • 顺序节点:创建顺序节点时,zk都会在路径后面自动添加上10位的数字(计数器)。计数器可以保证在同一个父节点下是唯一的。在zk内部使用了4个字节的有符号整形来表示这个计数器。溢出是在计数器大于214748364时。
### 创建顺序节点/持久顺序节点
create -s /module1/app app
得到:Created /module1/app0000000001

### 临时顺序节点
create -s -e /module1/app app

对于节点的数据:都是完整的读取与完整的写入操作。具备原子性。

dataVersion:数据版本号,每次对节点进行set操作,dataVersion的值都会增加1(即使设置的是相同的数据)。
cversion:子节点的版本号。当znode的子节点有变化时,cversion 的值就会增加1。
aclVersion:访问控制

由于版本号的不同,会导致某些正在进行中的操作保存失败。 C1修改子节点一,版本号增1,然后C2修改该子节点,那么版本号又会增1,与原来C1修改时的版本号不同,所以C1的修改不会被保存(版本号过期)。版本号不一致阻止并行操作。
在这里插入图片描述

1.事务ID

事务id具备唯一性,以此确定执行的先后顺序。
Znode被创建的事务id,cZxid。
Znode被修改的事务id,mZxid(修改即会被更新)。

在这里插入图片描述

集群模式下,客户端有多个服务器可以连接,当尝试连接到一个不同的服务器时,这个服务器的状态要与最后连接的服务器的状态要保持一致。Zk正是使用zxid来标识这个状态,描述了客户端在重连情况下zxid的作用。当客户端因超时与S1断开连接后,客户端开始尝试连接S2,但S2延迟于客户端所识别的状态。然而,S3的状态与客户端所识别的状态一致,所以客户端可以安全连接上S3。

2.时间戳

子节点根据时间线确定节点所保存的数据。
znode的创建时间和修改时间,创建时间是znode创建时的时间,创建后就不会改变;修改时间在每次更新znode时都会发生变化。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章           查看所有文章
加:2021-07-25 11:45:16  更:2021-07-25 11:47:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 23:56:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码