Zookeeper的客户端使用

时间:2022-06-12 08:29:48

1.1 Zookeeper API(原生)

1)连接的创建是异步的,需要开发人员自行编码实现等待

2)连接没有超时自动的重连机制

3)Zookeeper本身没提供序列化机制,需要开发人员自行指定,从而实现数据的序列化和反序列化

4)Watcher注册一次只会生效一次,需要不断的重复注册

5)Watcher的使用方式不符合java本身的术语,如果采用监听器方式,更容易理解

6)不支持递归创建树形节点

 

1.2 ZKClient API(前几年挺常用的,速度更新很慢)

ookeeper api的基础上进行封装,是一个更易用的客户端,解决和如下问题:

1)session会话超时重连

2)解决Watcher反复注册,提供事件订阅

3)简化API开发

 

1.3 Apache Curator (Fluent 风格)[链式/流式]

Curator解决除了ZkClient提供的功能外,新增如下功能:

1)提供了一套Fluent风格的客户端API框架。

2)提供了各种应用场景(Recipe,如共享锁服务、Master选举机制和分布式计数器)的抽样封装。

 

 

代码在码云中ZooKeeper_Demo项目中的api部分

代码链接