ZK Curator框架

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

一、Curator

  1. 为了更好的实现Java操作Zookeeper服务器,后来出现了Curator框架,非常的强大,目前已经是Apache的顶级项目,里面提供了更多丰富的操作,例如session超时重连、主从选举、分布式计数器、分布式锁等等适用于各种复杂的zookeeper场景的API封装。
  2. maven依赖:
<dependency>
     <groupId>org.apache.curator</groupId>
     <artifactId>curator-framework</artifactId>
     <version>2.4.2</version>
</dependency>

二、Curator框架使用

  1. 框架中使用链式编程风格,易读性更强,使用工程方法创建连接对象。使用CuratorFrameworkFactory的俩个静态工厂方法(参数不同)来实现:

    参数1:connectString,连接串;
    参数2:retryPolicy,重试连接策略。有四种实现分别为:ExponentialBackoffRetry、RetryNTimes、RetryOneTimes、RetryUntilElapsed;
    参数3:sessionTimeoutMs会话超时时间默认为60000ms;
    参数4:connectionTimeoutMs连接超时事件,默认为15000ms;

    注意:对于retryPolicy策略通过一个接口来让用户自定义实现。

  2. 创建节点create方法,可选链式项:createingParentsIfNeeded(),withMode(),forPath(),withACL()等;

  3. 删除节点delete方法,可选链式项:deletingChildrenIfNeeded(),guaranateed(),withVersion(),forPath()等;
  4. 读取和修改数据方法,getData(),setData()
  5. 异步绑定回调方法。比如创建节点时绑定一个回调函数,该回调函数可以输出服务器的状态码以及服务器事件类型。还可以加入一个线程池进行优化操作。
  6. 读取子节点方法,getChildren()
  7. 判断节点是否存在方法,checkExists()

三、Curator的监听

  1. 如果要使用类似Watcher的监听功能Curator必须依赖一个jar包,Maven依赖:
<dependency>
     <groupId>org.apache.curator</grouId>
     <artifactId>curator-recipes</artifactId>
     <version>2.4.2</version>
</dependency>

有了这个依赖包,我们使用NodeCache的方式去客户端示例中注册一个监听缓存,然后实现对应的监听方法即可,这里我们主要有两种监听方式:
1). 监听节点的新增、修改操作:NodeCacheListener
2). 监听子节点的新增、修改、删除操作:PathChildrenCacheListener

Curator框架简要解析(一)curator连接zk客户端 在上面的代码中,我们发现了ConnectionStateManager对象的start方法,CuratorZookeeperClient对象的start方法,连接状态的监听器的添加,以及提交一个异步线程任务等。从上面的代码中没看到什么有用的信息,我们暂时先放过,我们继续看CuratorZookeeperClient对象的start方法,感觉应该是在这个方法中进行创建zookeeper客户端的操作了。在上述的代码中我们没有找zookeeper客户端的创建操作的代码信息,那么我们猜测只能是在。 阅读详情

相关推荐

Context Capture10.20 安装教程(附安装包)

ContextCapture 是一款由Bentley公司推出的实景建模软件,可以快速为各种类型的基础设施项目生成最具挑战性的反应现实环境的三维模型。

一起来交流学习吧 2万+

Zookeeper客户端ZkClient、Curator的使用,史上最详细的教程来啦~

Zookeeper客户端ZkClient、Curator的使用,史上最详细的教程来啦~

zhaoshuangjian 4528

基于JAVA的GB28181实现之SIP服务核心组件解析

本文深入解析了基于JAVA的GB28181标准中SIP服务的核心组件实现,包括协议栈选择、消息处理引擎、事务管理器等关键技术点。通过实战案例分享海康威视、大华设备的特殊处理技巧,并提供性能优化和常见问题排查指南,帮助开发者高效构建稳定的视频监控系统。

weixin_30892037的博客 229

ZK客户端Curator使用详解

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。zookeeper不是为高可用性设计的,但它使用ZAB协议达到了极高的一致性,所以是个CP系统。所以它经常被选...

小姐姐味道 2675

zookeeper实现分布式锁-curator

Apache Curator是用于Apache ZooKeeper(一种分布式协调服务)的Java / JVM客户端库。它包括一个高级API框架和实用程序,使使用Apache ZooKeeper变得更加轻松和可靠。解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等。重点是它对分布式锁进行了封装 :http://curator.apache.org/getting-started.html。

2401_83329718的博客 1040

Zookeeper(一)——ZK介绍、搭建服务器、内部数据模型(如何保存数据、数据结构、节点类型与操作、数据持久化)、ZK客户端(节点数据和权限操作)、Curator的使用(Java代码操作ZK

Zookeeper(一)——ZK介绍、搭建服务器、内部数据模型(如何保存数据、数据结构、节点类型与操作、数据持久化)、ZK客户端(节点数据和权限操作)、Curator的使用(Java代码操作ZK

qq_41824825的博客 2515

ZK分布式锁框架curator

Curator框架使用

qq_49511239的博客 267

ZK分布式锁框架curator简单案例

1.引入依赖 <!--zookeeper--> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.7</version> </dependency&

zh1442113005的博客 2052

分布式架构-ZK客户端工具Curator框架分布式锁及基本使用

分布式架构-基于Curator分布式锁及基本使用 一、Curator Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等。Patrixck Hunt(Zookeeper)以一句“Guava is to Java that Curator to Zookeeper”给Curator予高度评价。 Curator官网 http://curator.

小毕超博客 1763

使用zk的分布式锁实现高可用(curator框架的使用)

引读:实现服务的高可用是防止单点故障的最好方式,因此许多大数据框架包括hadoop,spark都有ha机制,那么实现高可用的方式有许多,但是于我而言,最核心的方式其实就是分布式锁的运用。 正题:使用curatorFramework是实现分布式锁的一个比较好的框架,是apache的顶级项目,内部提供了几种锁,包括可重入和非可重入等,适合不同的场景。这次我们介绍一下比较常用的可重入锁的设计高可用的方案。 设计架构:启动一个调度线程进行锁的争抢,每次调度线程抢到锁之后,判断自己是否持有锁,如果未持有则尝试抢占分布

rong_king_的博客 958

zk羊群效应怎么处理

zk羊群效应怎么处理

qq690452074的专栏 314

zkcurator与spring的整合

分布式锁目的:数据最终一致性。 zkcurator与spring的整合 (1)工程结构 (2)编写ZKCurator.java类和applicationContext-zookeeper.xml配置文件 (3)定义zookeeper重试策略retryPolicy RetryNTimes构造方法: (4)zookeeper客户端curator连接zk服务器 Cur...

泷泷养的乔小胖 1302

ZK分布式锁的实现

ZK分布式锁的实现 1. 类图 2. 实现 2.1 简单实现 通过实现抽象实现AbstractLock,实现共有逻辑 简单实现的想法是每次都监听一个节点,当节点失效的时候通过Zk的监听模式通知客户端来重新争取锁。 AbstractLock public abstract class AbstractLock { public final static String PATH = "/MYLOCK3"; public static final String ADDRESS = "12

zrqsyh的博客 304

Curator客户端框架

一 简介 使用过原生API不得不说,有很多的问题,比如:不能递归创建和删除节点、Watcher只能使用一次、还有很多可以解决分布式应用问题的api(比如分布式锁,leader选举等),但由于ZooKeeper提供的原始API并不是很易用,在其基础上封装一些高级应用又是一件很复杂的事情。 这个时候,Curator出现了,Curator是Netflix公司开源的一个Z...

JinXYan的博客 1619

Curator简介

转载自:http://macrochen.iteye.com/blog/1366136   Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情, 于是在它的基础上包装了一下, 提供了一套更好用的客户端框架. Netflix在用ZooKeeper...

fratemity的专栏 265

Zookeeper开源客户端框架Curator简介[转]

Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情, 于是在它的基础上包装了一下, 提供了一套更好用的客户端框架. Netflix在用ZooKeeper的过程中遇到的问题, 我们也遇到了, 所以开始研究一下, 首先从他在github上的源码, wik...

weixin_34370347的博客 81

Zookeeper 分布式锁

随着公司业务的发展,单机应用已经无法支撑现有的用户量,之前采用和Lock锁已经无法满足分布式系统的要求。我们应用程序目前都会运行120台,节假日会扩容至240台,属于多JVM环境。所以需要搭建一套独立的zk集群或者Redisson集群提供分布式锁的功能。

程序猿进阶 1394

Curator简介(转载)

近期发现zkClient的fault-tolerent不好,于是找到了Curator,下面这篇介绍性的文章不错。 转自[url]http://macrochen.iteye.com/blog/1366136[/url] Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底...

szn的专栏 246

基于Apache Curator框架的ZooKeeper基本用法详解

|暂无评论|6495 views 一 简介 Apache Curator是一个比较完善的ZooKeeper客户端框架,通过封装的一套高级API 简化了ZooKeeper的操作。通过查看官方文档,可以发现Curator主要解决了三类问题: 封装ZooKeeper client与ZooKeeper server之间的连接处理 提供了一套Fluent风格的操作API 提供ZooKee...

我不是蒸鱼的博客 1729

Apache Curator简单使用(一)

转载自: http://ifeve.com/zookeeper-curato-framework/                http://blog.csdn.net/dc_726/article/details/46475633                http://macrochen.iteye.com/blog/1366136        Curator是Netflix

ZERO 2366

Java操作Zookeeper框架

Java操作Zookeeper框架

Allen_人工智能与大数据 1064
上一篇: JAVA操作Zookeeper
下一篇: Dubbo
IT_10000
博客等级 码龄9年 9粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值