zookeeper-curator 开源框架介绍
zookeeper 开源客户端 curator 介绍
原生 zookeeper 的 API 的存在一些不足之处:
连接对象是异步创建,需要手写代码,写等待逻辑
zookeeper 的连接没有自动重连和超时机制
watcher 是一次注册,只会生效一次,重复使用需重复注册
创建节点时不支持递归创建树形节点
有一个 curator 开源框架能解决这些问题,提供 zooKeeper 各种应用场景,比如:分布式锁服务、集群领导选举、分布式队列等功能的抽象封装,实现了 Fluent 风格的 API 接口。curator 开源框架的特点:
提供了 session 会话超时重连机制
watcher 支持反复注册,而不至于一次就实效
简化开发了 api
遵循 Fluent 风格的 API
提供了分布式锁服务、共享计数器、缓存机制等机制
maven 依赖:
连接
RetryPolicy 表示 session 重连策略,有三种类型:
new RetryOneTime(5000) 表示 5 秒后只重连一次
new RetryNTimes(3,5000) 表示每 5 秒重连一次,一共重连 3 次
new RetryUntilElapsed(10000,3000) 表示每 3 秒重连一次,总等待时间超过 10 秒后停止重连
sessionTimeoutMs 表示设置会话超时时间
新增节点
withMode() 表示设置新增节点的类型
withACL() 表示设置节点的权限
更新节点
forPath() 表示设置节点的路径和数据
withVersion() 表示指定版本号更新
另外还可以用 inBackground()方法指定异步进行更新数据
删除节点
withVersion() 表示指定版本号进行删除
deletingChildrenIfNeeded() 表示指定删除包含子节点的节点
另外也可以使用 inBackground()方法指定异步删除
版权声明: 本文为 InfoQ 作者【zarmnosaj】的原创文章。
原文链接:【http://xie.infoq.cn/article/2a640cb570ad11cd819d820a2】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论