0 介绍
zookeeper在很多框架中都有应用,例如:Dubbo,Hadoop,Kafka等,但典型的用法也就几种,掌握了这几种用法,再看zookeeper在相关框架中的应用就很轻松,下一篇文章将会详细介绍zookeeper在dubbo中的使用,以便有一个更深刻的了解
本文参考了《从Paxos到ZooKeeper》,鉴于本文的定位是一篇科普性质的文章,因此对于一些诸如共享锁和分布式队列的具体实现没有进行更详细的描述,实际工作中需要实现时可以参考这本书
zookeeper的数据模型和文件系统类似,每一个节点称为znode,是zookeeper中的最小数据单元,每一个znode上可以报存数据和挂载子节点,从而构成一个层次化的属性结构。
可以创建如下四种节点(znode)
- 持久节点:节点创建后会一直存在zookeeper服务器上,直到主动删除
- 持久顺序节点:每个节点都会为它的一级子节点维护一个顺序
- 临时节点:临时节点的生命周期和客户端的会话保持一致。当客户端会话失效,该节点自动清理
- 临时顺序节点:在临时节点上多了一个顺序的特性
简单演示一下常用的命令
create [-s] [-e] path data acl
-s : 创建顺序节点
-e : 创建临时节点
path : 路径
data : 数据
acl : 权限
create默认创建的是持久节点
create /level-1 123 create /level-1/level-1-2 456 get /level-1(获取节点level-1的值,输出123) ls /level-1 (获取节点level-1的子节点,输出[level-1-2]) // 创建一个顺序节点 create -s /nodes 123(实际为nodes0000000003) create -s /nodes 456(实际为nodes0000000004)
执行完上述命令后,数据结构如下所示:
本文转载自网络,原文链接:https://m.toutiaocdn.com/group/6682950966796354051/?app=news_article×tamp=1582636464&req_id=202002252114230100140411550F6B0B80&group_id=6682950966796354051&tt_from=weixin&utm_source=weixin&utm_me
版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除