一.前言 前篇博客分析了Zookeeper的序列化和通信协议,接着继续学习客户端,客户端是开发人员使用Zookeeper最主要的途径,很有必要弄懂客户端是如何与服务端通信的. 二.客户端 2.1 客户端组成 Zookeeper客户端主要由如下核心部件构成. 1. Zookeeper实例,客户端入口. 2. ClientWatchManager, 客户端Watcher管理器. 3. HostProvider,客户端地址列表管理器. 4. ClientCnxn,客户端核心线程,内部包含了SendTh…
与mysql.redis等软件一样,zookeeper的软件包中也提供了客户端程序用于对服务器上的数据进行操作.本节我们就来学习zookeeper客户端的使用方法.不过在详细讲解zk客户端的使用方法之前,我们会先来讨论zookeeper的数据存储结构,只有理解了zookeeper的数据存储结构,才会真正明白zk操作的真正含义. zookeeper数据存储结构 zookeeper采用树状结构对数据进行存储,整个数据存储结构非常类似于linux的文件系统.如下图所示,节点node_1的路径是/nod…
zookeeper是一个分布式的开源的分布式协调服务,用它可以来现同步服务,配置维护.zookeeper的稳定性也是可以保证的,笔者曾参与过的使用zookeeper的两个应用,一个是用zookeeper来做分布式锁,属于同步协调服务,另一个是配置维护,三台机器运行了一年多了,没有出现什么问题. 运用场景:------------------------同步服务:利用zookeeper可以使机器之间的同步如同concurrent包下的同步器同步线程一样,举两个互斥同步的例子 1.  应用系统部署在…
ZooKeeper客户端 zkCli.sh 节点的增删改查 在 bin 目录下的  zkCli.sh  就是ZooKeeper客户端 ./zkCli.sh -timeout 5000  -server 127.0.0.1:2181  客户端与ZooKeeper建立链接 timeout:超时时间,单位毫秒 r:只读模式,当节点坏掉的时候,还可以提供读服务 示例: ./zkCli.sh -timeout 5000 -server 127.0.0.1:2181 1 zhangliuningdeMacB…
在使用zookeper的时候一般不使用原生的API,Curator,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连.反复注册Watcher和NodeExistsException异常等等. Curator包含了几个包: curator-framework:对zookeeper的底层api的一些封装 curator-client:提供一些客户端的操作,例如重试策略等 curator-recipes:封装了一些高级特性,如:Cache事件监听.选举.分布式锁.分布式计数器.分…
Curator是Netflix公司开源的一个Zookeeper客户端,与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量. 1.引入依赖: <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.0</versio…
zkCli.sh 在 bin 目录下的  zkCli.sh  就是ZooKeeper客户端 ./zkCli.sh -timeout 5000  -server 127.0.0.1:2181  客户端与ZooKeeper建立链接 timeout:超时时间,单位毫秒 r:只读模式,当节点坏掉的时候,还可以提供读服务 示例: ./zkCli.sh -timeout 5000 -server 127.0.0.1:2181 zhangliuningdeMacBook-Pro:bin sherry$ ./z…
Zookeeper客户端Curator使用详解 前提 最近刚好用到了zookeeper,做了一个基于SpringBoot.Curator.Bootstrap写了一个可视化的Web应用: zookeeper-console 欢迎使用和star. 简介 Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连.反复注册Watcher和NodeExistsException异常等等.Patrixck Hunt(Zo…
简介 Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连.反复注册Watcher和NodeExistsException异常等等.Patrixck Hunt(Zookeeper)以一句“Guava is to Java that Curator to Zookeeper”给Curator予高度评价. 引子和趣闻 Zookeeper名字的由来是比较有趣的,下面的片段摘抄自<从PAXOS到ZOOKEEPER…
Zookeeper客户端对比选择 本文思维导图 使用框架的好处是自带一套实用的API,但是Zookeeper虽然非常强大,但是社区却安静的可怕,版本更新较慢,下面会先从zookeeper原生API的不足说起,然后引出现在流行的开源客户端工具. 1.原生API 1.创建连接的时候是异步的,所以我们在开发的时候需要人工的写代码等待创建节点的状态,如果需要的话. 2.连接时无超时重连机制.本人觉得这个非常重要,因为在现实使用中,网络是不可信的,在创建节点的时候要考虑到网络的不稳定性.因此,超时重连机制…