基本介绍
名字来源
《Paxos到Zookeeper:分布式一致性原理与实践》中有写道:
Zookeeper 最早起源于雅虎的研究院的一个研究小组。在立项初期,考虑到很多项目都是用动物的名字来命名的 (例如著名的 Pig 项目),雅虎的工程师希望给这个项目也取一个动物的名字。时任研究院的首席科学家 Raghu Ramakrishnan 开玩笑说:再这样下去,我们这儿就变成动物园了。此话一出,大家纷纷表示就叫动物园管理员吧——因为各个以动物命名的分布式组件放在一起,雅虎的整个分布式系统看上去就像一个大型的动物园了,而 Zookeeper 正好用来进行分布式环境的协调——于是,Zookeeper 的名字由此诞生了。
数据存储
zk 的数据以类似目录树的形式组织,但是没有相对路径的概念,必须以“/”为根。每个“目录”称为 Znode,每个 Znode 都可以包含数据和子节点。
Znode 有四种类型:持久,顺序,临时,临时顺序。临时节点在会话失效后,就会被删除。
术语
tick
zk 中有一个 tick 的概念,也可以称为“滴答”,表示一次心跳的间隔。zk 中许多时间的设置都是以 tick 为基本单位进行配置,比如以 2 个 tick 作为会话超时时间。
Zxid
Zxid(ZooKeeper transaction id)就是事务id,zk 中每次写请求都对应一个唯一的事务id,它是全局且有序的,如果 Zxid1 小于 Zxid2,那 Zxid1 就一定是发生在 Zxid2 前。
常用操作
创建节点
# 持久节点
create path value
# 临时节点
create -e path value
# 顺序节点
create -s path value
查看节点状态
- 使用
stat
命令查看 - 网上的教程说可以使用
ls2
,这个命令在新版中已经没有了,可以使用ls -s
代替。
[zk: localhost:2181(CONNECTED) 9] stat /clickhouse/task_queue/ddl/query-0000014523/finished
cZxid = 0x14cc043d76f0 # 创建该节点的 zxid
ctime = Thu Jan 20 11:09:11 CST 2022 # 创建时间
mZxid = 0x14cc043d76f0 # 修改改节点的 zxid
mtime = Thu Jan 20 11:09:11 CST 2022 # 修改时间
pZxid = 0x14cc043d7709 # 该节点的子节点最后修改的 zxid
cversion = 3 # 子节点变更次数
dataVersion = 0 # 该节点数据变更次数
aclVersion = 0 # 该节点 acl 变更次数
ephemeralOwner = 0x0 # 临时节点所有者会话id,非临时的为0
dataLength = 0 # 该节点数据长度
numChildren = 3 # 子节点数(不包括孙子节点)
参考资料
本文链接:https://blog.xiaoyuyu.cn/post/zookeeper-notes.html,参与评论 »
--EOF--
发表于 2022-01-20 11:59:00,并被添加「zookeeper」标签。
本站使用「署名 4.0 国际」创作共享协议,转载请注明作者及原网址。更多说明 »
提醒:本文最后更新于 1149 天前,文中所描述的信息可能已发生改变,请谨慎使用。
Comments