初试Zookeeper---概念篇
zookeeper:一个分布式协调框架,主要用在集群管理,分布式应用配置管理等。
核心机制:
- 文件系统数据结构
- 监听通知机制
文件系统数据结构
每个子目录都被称为znode(目录节点),node分四种类型,如下:
- 持久化目录节点:只要不删除,永远存在;
127.0.0.1:2181 $ create /z/a
Created /z/a
127.0.0.1:2181 $ ls /z
[a]
- 持久化顺序目录节点:比持久化目录节点多一个顺序编号;
127.0.0.1:2181 $ create -s /z/c
Created /z/c0000000003
127.0.0.1:2181 $ create -s /z/d
Created /z/d0000000004
127.0.0.1:2181 $ ls /z
[a, b, c0000000003, d0000000004]
- 临时目录节点:zookeeper断开连接后删除;
127.0.0.1:2181 $ create -e /z/b
Created /z/b
127.0.0.1:2181 $ ls /z
[a, b]
127.0.0.1:2181 $ get /z/bcZxid = 0x504578ae2
ctime = Mon May 17 17:11:29 CST 2021
mZxid = 0x504578ae2
mtime = Mon May 17 17:11:29 CST 2021
pZxid = 0x504578ae2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x109175e11652938
dataLength = 0
numChildren = 0
- 临时顺序目录节点:zookeeper断开连接后删除,带有顺序编号
127.0.0.1:2181 $ create -s -e /z/f
Created /z/f0000000005
127.0.0.1:2181 $ ls /z
[a, b, f0000000005, c0000000003, d0000000004]
127.0.0.1:2181 $ get /z/f0000000005cZxid = 0x504579425
ctime = Mon May 17 17:15:58 CST 2021
mZxid = 0x504579425
mtime = Mon May 17 17:15:58 CST 2021
pZxid = 0x504579425
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x109175e11652938
dataLength = 0
numChildren = 0
- 容器节点:如果容器节点下面没有子节点,则zookeeper会定时清除
- TTL节点:过了TTL指定时间,会被服务器删除
监听通知机制
官网解释:zookeeper支持监听,客户端可以在znode上设置监听,znode更改时,触发通知并删除监视。触发监听后,客户端后收到数据,说明znode已经更改。理解如下:
- 若监听某个节点,则该节点变动时,客户端将被通知;
- 若监听某个目录,则该目录下有节点变动时,客户端将被通知;
- 若递归监听某个目录,则该目录下任一子节点变动时,客户端将被通知。
- 所有通知都是一次性的,通知完删除监听。
Zookeeper内存数据和持久化
zookeeper为文件系统数据结构,而这些数据是存储在内存中,所以可以把zookeeper看成基于内存的小型数据库。
数据快照
数据快照用于记录Zookeeper服务器上某一时刻的全量数据,并将其写入到指定的磁盘文件中。
初试Zookeeper---概念篇相关推荐
- ORM查询语言(OQL)简介--概念篇
相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎换骨 ORM查询语言(OQL)简介--高级篇(续):庐山 ...
- android 电容屏(二):驱动调试之基本概念篇
关键词:android 电容屏 tp 工作队列 中断 多点触摸协议 平台信息: 内核:linux2.6/linux3.0 系统:android/android4.0 平台:S5PV310(sams ...
- 人工智能 | 自动驾驶与人工智能前沿研究报告(概念篇)
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 ================= ...
- 人工智能 | 人脸识别研究报告(概念篇)
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 ================= ...
- 人工智能 | 自然语言处理研究报告(概念篇)
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 ================= ...
- JavaScript高级程序设计之基本概念篇
日子天天过,啥都能忘,学习不能忘.<JavaScript高级程序设计>这本书之前看过,但是只看了js的部分,其余部分并没有看.当时想,看看js部分应该够用了,但最近看了篇文章,受到了很深的 ...
- Linux Capabilities 入门教程--概念篇
该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...
- Hugepages你用了吗?--原理概念篇
Hugepages你用了吗?----原理概念篇 Hugepages你用了吗?----测试案例篇 引子 系统进程是通过虚拟地址访问内存,但是CPU必须把它转换程物理内存地址才能真正访问内存.为 ...
- 论“前置测试模型”-1 概念篇
最近几期上层一直在推一个测试理念-前置测试模型,由于当时时间很忙并且刚刚入职,只是跟着团队的大方向找着感觉,这几天看了一篇介绍前置测试模型的资料,结合当前的工作感悟,想在此记录一些自己对其的肤浅认识. ...
- java lambda 排序_Java8特性:Lambda表达式之概念篇
Java自诞生已经有十几个年头了,目前也已经发布了第十三个大版本,其中Java8是常用的版本中最新的一个版本.而Java8最大的特性就是:Lambda表达式.函数式接口和Stream流. 本篇我只介绍 ...
最新文章
- 第二阶段团队项目冲刺站立会议(九)
- React Native学习(七)—— FlatList实现横向滑动列表效果
- selenium如何在同一个窗口页面中返回上一个页面窗口(Python)。
- 服务器网卡的连接速度改成自动检测_ubuntu xftp,ubuntu xftp之间怎么连接,连接步骤...
- PHP后台处理jQuery Ajax跨域请求问题 — xx was not called解决办法
- raptor累乘流程图_Markdown快速上手指南
- 80-10-010-原理-Java NIO-简介
- 转:完全卸载Oracle方法
- DWR Sample
- python继承的写法_python – 从框架继承或不继承Tkinter应用程序
- android BaseFragment获取Context上下文方法
- 越做越好的adobe acrobat
- 梯度消失的有效解决方法-batch normalization
- ​使用 QuickBI 搭建酷炫可视化分析
- java实现同步的几种方式(总结)
- 数据库和数据库实例的概念
- 《植物大战僵尸》游戏存档修改
- 今日头条一个身份证可以注册几个头条号
- 拼多多竞价成功后多久有流量?万顿思教育
- C语言之到底是不是太胖了