ZooKeeper第三方客户端CuratorFramework简介

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: CuratorFramework监听机制的一些细节

结论:在使用CuratorFramework的监听机制时,

    如果使用NodeCache,对于多级路径,即使不创建该路径,设置监听后CuratorFramework会主动创建从第一级路径到倒数第二级的路径,比如要监听路径 "/a/b/c" 的NodeCache,CuratorFramework会自动替你创建路径 "/a/b";

    如果使用PathChildrenCache,对于多级路径,即使不创建该路径,设置监听后CuratorFramework会主动创建整个完整路径,比如要监听路径 "/A/B/C" 的PathChildrenCache,CuratorFramework会自动替你创建路径 "/A/B/C"。

测试代码:


 


启动程序前,ZooKeeper的节点情况:

[zk: localhost:2181(CONNECTED) 2] ls /

[cluster, brokers, zookeeper, admin, isr_change_notification, log_dir_event_notification, controller_epoch, name, ha, consumers, latest_producer_id_block, config]

节点中并不包含"/A"和"/a"这两个。


启动程序后,ZooKeeper的节点情况:

[zk: localhost:2181(CONNECTED) 3] ls /

[cluster, a, A, brokers, zookeeper, admin, isr_change_notification, log_dir_event_notification, controller_epoch, name, ha, consumers, latest_producer_id_block, config]

再查看其具体路径:

[zk: localhost:2181(CONNECTED) 4] get /a/b


cZxid = 0x125b

ctime = Sun Sep 09 12:43:02 GMT+08:00 2018

mZxid = 0x125b

mtime = Sun Sep 09 12:43:02 GMT+08:00 2018

pZxid = 0x125b

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 0

numChildren = 0

[zk: localhost:2181(CONNECTED) 5] get /a/b/c

Node does not exist: /a/b/c

[zk: localhost:2181(CONNECTED) 6] get /A/B/C


cZxid = 0x125e

ctime = Sun Sep 09 12:43:02 GMT+08:00 2018

mZxid = 0x125e

mtime = Sun Sep 09 12:43:02 GMT+08:00 2018

pZxid = 0x125e

cversion = 0

dataVersion = 0

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 0

numChildren = 0


可以看出,确实和结论一样。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
3月前
|
安全 Java API
Zookeeper(持续更新) VIP-02 Zookeeper客户端使用与集群特性
2,/usr/local/data/zookeeper-3,/usr/local/data/zookeeper-4,在每个目录中创建文件。创建四个文件夹/usr/local/data/zookeeper-1,/usr/local/data/zookeeper-Follower:只能处理读请求,同时作为 Leader的候选节点,即如果Leader宕机,Follower节点。己对外提供服务的起始状态。E: 角色, 默认是 participant,即参与过半机制的角色,选举,事务请求过半提交,还有一个是。
|
3月前
Zookeeper的客户端的命令
Zookeeper的客户端的命令
18 0
|
3月前
|
缓存 Java API
Zookeeper(持续更新) VIP-02 Zookeeper客户端使用与集群特性
Curator 是一套由netflix 公司开源的,Java 语言编程的 ZooKeeper 客户端框架,Curator项目是现在ZooKeeper 客户端中使用最多,对ZooKeeper 版本支持最好的第三方客户端,并推荐使用,Curator 把我们平时常用的很多 ZooKeeper 服务开发功能做了封装,例如 Leader 选举、分布式计数器、分布式锁。这就减少了技术人员在使用 ZooKeeper 时的大部分底层细节开发工作。
|
3月前
|
Apache
Apache ZooKeeper - 构建ZooKeeper源码环境及StandAlone模式下的服务端和客户端启动
Apache ZooKeeper - 构建ZooKeeper源码环境及StandAlone模式下的服务端和客户端启动
45 2
|
8月前
|
API
Zookeeper学习---2、客户端API操作、客户端向服务端写数据流程
Zookeeper学习---2、客户端API操作、客户端向服务端写数据流程
Zookeeper学习---2、客户端API操作、客户端向服务端写数据流程
|
4月前
|
存储 设计模式 算法
深入浅出Zookeeper源码(六):客户端的请求在服务器中经历了什么
当我们向zk发出一个数据更新请求时,这个请求的处理流程是什么样的?zk又是使用了什么共识算法来保证一致性呢?带着这些问题,我们进入今天的正文。
136 1
深入浅出Zookeeper源码(六):客户端的请求在服务器中经历了什么
|
4月前
|
存储 设计模式 算法
深入浅出Zookeeper源码(六):客户端的请求在服务器中经历了什么
当我们向zk发出一个数据更新请求时,这个请求的处理流程是什么样的?zk又是使用了什么共识算法来保证一致性呢?带着这些问题,我们进入今天的正文。
117 0
|
4月前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
22 0
|
4月前
|
存储 负载均衡 网络协议
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
56 0
|
4月前
|
存储 Java API
ZooKeeper【客户端的API操作、写数据流程】
ZooKeeper【客户端的API操作、写数据流程】

热门文章

最新文章