本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/29805
一,zookeeper介绍
- zookeeper是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。
- Zookeeper特点:顺序一致性、原子性、单一映像、可靠性。
二,ZK数据模型
- Zookeeper维护一个类似文件系统的数据结构,如图所示。
- 每个子目录项如NameService都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
三,ZK节点类型
- 节点类型
- PERSISTENT-持久化目录节点:客户端与zookeeper断开连接后,该节点依旧存在。
- PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号;
- EPHEMERAL-临时目录节点:客户端与zookeeper断开连接后,该节点被删除;
- EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点:客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。
四,常用命令和参数说明
zk登录
- 机器:ip地址,登录名: admin 密码:xxx
cd bin
zkCli.sh -server 10.177.67.201:2181
查看 dubbo provider是否已经注册到zk:
ls /dubbo/com.oppo.os.ads.show.cpd.service.IMixCpdListSvc/providers
- 查看path下的节点:
ls /ors-sdk/prod/search/recommend/sdk/hosts
查看服务注册配置信息
新建节点
create /ors-sdk/prod/search/recommend/sdk/hosts/10.177.102.21:48825 10.177.102.21:48825
- 创建临时节点:
create [-s] [-e] path data acl
- -s和-e分别指定节点特性:顺序或临时节点,默认情况下,不添加-s或-e参数的,创建的是持久节点
- acl:用来进行权限控制,缺省情况下,不做任何权限控制
- path:节点路径
- data:节点保存的数据例子
查看节点
get /FUXI/DATA_TYPE/cpd-app-down/sdk
删除节点
rmr /okeeper/BaiduRecall/10.177.253.76:8999
delete /okeeper/BaiduRecall/10.177.253.76:8999
--没有子节点可使用delete