zookeeper开源客户端Curator介绍

 

一、Zookeeper客户端介绍

1、Zookeeper原生API

1)Zookeeper的Watcher是一次性的,每次触发之后需要重新注册

2)Session超时后没有实现重连机制

3)异常处理繁琐,Zookeeper提供了很多异常,对开发人员来说可能不知道如何去处理这些异常

4)只提供了简单的byte[]数组的接口,没有提供针对对象级别的序列化

5)创建节点时如果节点已存在会抛出异常,需要自行检查节点是否存在

6)删除节点无法实现级联删除

 

2、ZkClient

ZkClient是一个Zookeeper开源客户端,在Zookeeper原生API基础上进行了封装,以便于开发人员使用。ZkClient内部实现了Session超时重连、Watcher反复注册等功能,但是仍有一些不足之处:

1)社区不活跃,缺少API参考文档

2)异常处理简化(抛出RuntimeException)

3)重试机制比较难用

4)没有提供各种使用场景的实现

 

3、Curator

Apache Curator是Netflix开源的一个Zookeeper客户端框架,相比于原生的Zookeeper客户端,Curator的抽象层次更高,简化了Zookeeper客户端的操作。Curator主要解决了如下问题:

1)封装Zookeeper Client和Zookeeper Server之间的连接处理
2)提供了一套Fluent风格的操作API
3)提供Zookeeper各种应用场景(分布式锁、集群Leader选举、共享计数器、缓存机制、分布式队列等)的抽象封装

Apache Curator主要从以下几方面降低了Zk使用的复杂性:

1)重试机制:提供可插拔的重试机制,它给所有捕获到的异常配置一个重试策略,并且内部也提供了几种标准的重试策略。

2)连接状态监控:Curator初始化后会一直对Zk连接进行监听,一旦发现连接状态发生变化会做出相应的处理。

3)Zk客户端实例管理:Curator会对Zk客户端到Zk集群的连接进行管理,并在需要的时候重建Zk实例,保证与Zk集群连接的可靠性。

4)各种使用场景支持:Curator实现了Zk支持的大部分使用场景,这些实现都遵循了Zk的最佳实践,并考虑了各种极端情况。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值