ZooKeeper应用的开发主要通过Java客户端API去连接和操作ZooKeeper集群。可供选择的Java客户端API有:
- ZooKeeper官方的Java客户端API
- 第三方的Java客户端API,比如Curator
ZooKeeper官方的客户端API提供了基本的操作。例如,创建会话、创建节点、读取节点、更新数据、删除节点和检查节点是否存在等。
不过,对于实际开发来说,ZooKeeper官方API有一些不足之处,具体如下:
- ZooKeeper的Watcher监测是一次性的,每次触发之后都需要重新进行注册
- 会话超时之后没有实现重连机制
- 异常处理烦琐,ZooKeeper提供了很多异常,对于开发人员来说可能根本不知道应该如何处理这些抛出的异常
- 仅提供了简单的byte[]数组类型的接口,没有提供Java POJO级别的序列化数据处理接口
- 创建节点时如果抛出异常,需要自行检查节点是否存在
- 无法实现级联删除
总之,ZooKeeper官方API功能比较简单,在实际开发过程中比较笨重,一般不推荐使用
Zookeeper 原生Java客户端使用引入zookeeper client依赖 注意:保持与服务端版本一致,不然会有很多兼容性的问题


