Apache curator-frameworker简述

宝骏kiwi 630 730 560 E100 E200 E300 310 510 610 330 530维修手册电路图资料线路图接线图更新 2020-2022年宝骏RS-3维修手册和电路图。2020-2022年宝骏RS-3维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2021年宝骏510维修手册和电路图。2019-2021年宝骏510维修手册和电路图。 阅读详情

    Apachecurator-framework是一个高层API,对curator-client组件进行了二次封装,开发者可以更少的关注zookeeper底层,进行快捷的开发.

    特性一览:

  1. 链接管理: 框架已经兼容了zookeeper网络链接异常问题,并提供了自动重连机制.
  2. 简洁的API设计: fluent风格API(最大亮点),大部分API中已经兼容了zookeeper操作异常问题.
  3. 事件通知: 对于wather的注册/管理,以及事件处理,一致都比较繁琐,在framework中,这个工作将变得简单.
  4. 提供了基于异步操作,和zk异常控制.
1. 创建Client
CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder();
// fluent style
String namespace = "cluster-worker";//命名空间,会被作为所有path的前缀自动补全.
// FixedEnsembleProvider
CuratorFramework client = builder.connectString("127.0.0.1:2181")
		.sessionTimeoutMs(30000)
		.connectionTimeoutMs(30000)
		.canBeReadOnly(false)
		.retryPolicy(new ExponentialBackoffRetry(1000, Integer.MAX_VALUE))
		.namespace(namespace)
		.aclProvider(new MappedACLProvider())
		.defaultData(null)
		.build();
// client中无法直接指定watcher(即defaultWatcher),因为框架需要使用这个watcher来处理与链接有关的异常
// 开发者可以通过如下方式指定

CuratorListener listener = new CuratorListener() {
	
	@Override
	public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception {
		if(event == null){
			return;
		}
		if(CuratorEventType.CLOSING == event.getType()){
			System.out.println("Client will be closed!");
		}else{
			System.out.println("CuratorEvent type:" + event.getType().toString());
			System.out.println("CuratorEvent path:" + event.getPath());
		}
		
	}
};
client.getCuratorListenable().addListener(listener);
client.start();
//....
//client.close()
    在client中注册的listener或者backgroundCallback将会在两个单独的线程中运行.当zookeeper操作有任何事件触发时,都会执行listener.eventReceived()方法.
2. 创建节点("异步"方式) 
EnsurePath ensure = client.newNamespaceAwareEnsurePath(namespace);
ensure.ensure(client.getZookeeperClient());

// -----------create a node------------
// use async style
// for time trace
BackgroundCallback callback = new BackgroundCallback() {
	@Override
	public void processResult(CuratorFramework client, CuratorEvent event) throws Exception {
		Long begin = (Long) event.getContext();
		Long end = System.currentTimeMillis();
		System.out.println("<Time>:" + (end - begin) + "ms");
		//check result
		Code rc = Code.get(event.getResultCode());
		if(rc != Code.OK){
			System.out.println("Background operation fail,path:" + event.getPath() + ";Message:" + KeeperException.create(rc).getMessage());
		}
	}
};
long current = System.currentTimeMillis();
String value = "test-" + current;
client.create()
	.creatingParentsIfNeeded()
	.withMode(CreateMode.PERSISTENT)
	.inBackground(callback, current)
	.forPath("/test/0", value.getBytes("utf-8"));

    create操作以异步的方式执行,此时"create操作"将会被封装成一个Operation而提交到线程池中,无论操作执行是否成功或者抛出异常,都执行BackgroundCallback;对于开发者而言,需要在callback中处理"失败"情况.

 

3. getData和注册watcher

// ----------getData---------------
// register a watcher
// only print something
CuratorWatcher dataWatcher = new CuratorWatcher() {

	@Override
	public void process(WatchedEvent event) throws Exception {
		System.out.println("path:" + event.getPath());
		EventType eventType = event.getType();
		if (eventType == EventType.None) {
			KeeperState state = event.getState();
			System.out.println(state.toString());
		} else {
			System.out.println(eventType.toString());
		}

	}
};
Stat stat = new Stat();
byte[] data = client.getData().storingStatIn(stat).usingWatcher(dataWatcher).forPath("/test/0");
System.out.println("version:" + stat.getVersion());
System.out.println("data:" + new String(data));

4. 事务

// trasaction
CuratorTransaction tx = client.inTransaction();
tx.delete().forPath("/test/0")
	.and()
	.create().forPath("/test/01")
	.and()
	.commit();

   

    使用frameworker开发zookeeper程序,已经相当简单了,开发者无需过度关注"链接异常"等问题. 

海康视觉相机驱动软件MVS参数配置全攻略(附接线图+避坑指南) 本文提供了海康视觉相机驱动软件MVS从硬件连接到软件参数配置的完整指南。详细解析了供电与通讯线缆的区分、PNP/NPN信号逻辑的接线避坑方法,并重点阐述了MVS软件中触发模式、网络IP配置、图像采集及光源控制等核心参数的设置技巧,旨在帮助用户快速完成相机调试,实现稳定高效的图像采集。 阅读详情

相关推荐

Stata极简生存分析

1. 导入数据 webuse drugtr,clear *webuse -- Use dataset from Stata website stset,clear *上一行命令导入进来的数据是“生存时间数据”,会比最原始的数据多四列,这一行命令的目的是重置为原始数据,之所以这样做,是为了显示数据处理的全部过程 codebook drug codebook studytime codebook died codebook age *codebook -- Describe data contents 2.

TOP生物信息 2336

[启动报错]有关org.apache.curator.framework.CuratorFrameworkFactory-【以解决】

需要添加这两个依赖,就刷新maven在次尝试重启。

阿丹的博客 1272

道路损伤检测必备:RDD2022数据清洗与增强的5个关键步骤

本文详细介绍了道路损伤检测中RDD2022数据集清洗与增强的5个关键步骤。通过深度数据质量审计、跨国家分布分析、面向真实场景的智能增强、以模型表现为导向的数据集划分,以及构建自动化处理流水线,将原始数据转化为高质量训练集,有效提升模型性能。

cola5的博客 514

Apache Curator 常见问题解决方案

Apache Curator 是一个用于 Apache ZooKeeper 的 Java/JVM 客户端库。ZooKeeper 是一个分布式协调服务,而 Curator 提供了一个高层次的 API 框架和工具,使得使用 ZooKeeper 变得更加容易和可靠。Curator 还包括一些常见的使用案例和扩展,如服务发现和 Java 8 异步 DSL。 主要的编程语言是 Java。 ## 新手使用...

gitblog_00210的博客 1012

解决Unity打包后粒子特效显示不全的问题

粒子特效在Editor下显示没有问题,但打包后出现部分粒子特效里的Mesh没有显示。

agoo_indie的博客 4381

【技能---ubuntu20.04更换国内镜像源】

安装好ubuntu20.04后,在下载软件等安装包的时候,速度特别的慢,为此就想着更换一下镜像源,以此来增加下载的速度!!!下面是换源的具体流程!!!提示:以下是本篇文章正文内容,下面案例可供参考以上到这里就更换完软件源了,如有不足之处,请大家斧正!!!

fyc300的博客 1万+

ERROR org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss

首先就是替换zookeeper的服务器地址和端口,这样我就解决了问题。如果还不能解决,将jdk换成1.8的。

m0_50736744的博客 880

嵌入式工程师必学(118):MCU的硬件定时器和中断

大多数微处理器都有一个或多个可编程硬件定时器,这些定时器包括对中断的支持。可以有不同类型的计时器,用于不同的应用程序。例如,LPC1768 具有四个 32 位通用定时器、一个看门狗定时器、一个重复中断定时器、一个系统滴答定时器、一个正交编码器接口、6 个 PWM 输出和一个支持中断的实时时钟。硬件定时器用于计时和计数作,允许处理器在 timer 进程运行时继续执行其他进程。硬件定时器是一种使用 clock 信号来增加 register 的电路。

码农17年的博客 211

Zookeeper更新报错空指针-待处理

[16:26:01:417] [ERROR] - org.apache.curator.framework.imps.CuratorFrameworkImpl.logError(CuratorFrameworkImpl.java:703) - Background exception was not retry-able or retry gave up java.lang.NullPointerException: null at org.apache.curator.framework.imps.Ens

hust_lpx的博客 2193

Skills入门学习路线

简单来说,Skills就像是给Claude准备的”插件包"或”工具箱”。它是一个集合,里面装了特定的操作指令(Instructions)、可执行脚本(Scripts)和相关素材(Resources)。2025 年 10 月中旬,Anthropic 正式发布 Claude Skills。两个月后,Agent Skills 作为开放标准被进一步发布,意在引导一个新的 AI Agent 开发生态。OpenAI、Github、VS Code、Cursor 均已跟进。为了更好的理解,你可以把。

十二测试录 1098

荣耀Magic 6 dToF LiDAR Android阵营全球第一首发

40X30分辨率的BSI SPAD小面阵,帧率达到60帧,搭配多传感器融合算法, 可产生足够的稠密点云,为应用设备提供可靠的距离传感。在手机消费电子方案中,dToF LiDAR技术不仅提升了手机的功能和用户体验,还为手机厂商提供了差异化的竞争优势。随着技术的不断进步和市场的快速发展,我们可以期待未来dToF LiDAR技术将在手机领域发挥更大的作用,为用户带来更多创新和便捷的功能。增强现实(AR)体验:通过dToF LiDAR提供的高精度深度信息,手机可以更准确地放置虚拟物体在现实世界的表面上。

致力于lidar应用开发 19万+

springboot+dubbo项目启动报错,org/apache/curator/RetryPolicy

启动分布式项目的时候,遇到Caused by: java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy这样的错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy at com.alibaba...

千羽公子的专栏 2911

基于STM32设计的遥控灭火消防小车_296

随着城市化进程的加速和火灾发生频率的增加,传统的消防方式在应对初期火灾时存在反应慢、效率低等问题。为了提高火灾响应速度和灭火效率,本设计开发了一款基于STM32单片机的遥控灭火消防小车。该小车配备了烟雾检测、温湿度监测、火源定位、灭火操作等功能,能够通过蓝牙和WIFI实现远程控制与实时视频传输。设计采用了MQ2烟雾传感器、SHT30温湿度传感器、火光传感器和ESP32摄像头模块等硬件设备。系统不仅能够自动检测和定位火源,还可以手动调整灭火器对准位置,进行干粉灭火。此外,蜂鸣器用于火源报警,确保操作人员及时得

722

Spring Boot 使用 Dubbo 3 报错: org/apache/curator/framework/CuratorFrameworkFactory

场景:Spring Boot 集成 Dubbo 3 并使用 Zookeeper 作为注册中心集成,启动的时候直接报错: java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory at org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperClient.<init>(CuratorZookeeperClient.java

一只奋斗的猪 8647

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Curator框架 以及基本API如何操作

Curator框架 以及基本API如何操作

qq_41273137的博客 1255

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ZooKeeper 之Apache Curator 客户端使用

ZooKeeper 原生不足之处: 超时重连,不支持自动,需要手动操作 Watch注册一次后会失效 不支持递归创建节点 Apache Curator apache的开源项目,解决watcher注册一次就失效的问题,api更加简单易用,提供更多解决方案并且实现简单:如分布式锁 Maven 添加Apache Curator 依赖 <!--zookeeper相关--> <dependency> <gro...

zhouzhiwengang的专栏 485

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

记录一次Curator操作zookeeper的错误

在项目中使用到Apache Curator Framework连接Zookeeper 3.4.5服务器,使用的Curator Framework版本是4.3.0 <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipe...

Mrerlou的博客 818

Apache Curator简单介绍

原文链接:https://www.dubby.cn/detail.html?id=9099 提供了一个抽象级别更高的API,来操作Zookeeper,类似Guava提供的很多工具,让Java书写起来更加方便。至于有没有用,那就要看每个人自己的理解了。 1、依赖 &lt;dependency&gt; &lt;groupId&gt;org.apache.curator&lt;/groupI...

明月阁 1297

org.apache.curator.CuratorConnectionLossException: KeeperErrorCode = ConnectionLoss

前言: 初学Dubbo时,运行provider的时候,接收端一直在报错,在网上找了很多方法!在此总结一下! 异常: 异常: org.apache.curator.CuratorConnectionLossException: KeeperErrorCode = ConnectionLoss 具体异常信息如下: org.apache.curator.CuratorConnectionLossExc...

fuwugui的博客 9597

zookeeper--javaApi--CRUD

public class CuratorTest { private CuratorFramework client; /** * 建立连接 */ @Before //@Test标注的测试方法不能传参,so加before,在Test标注的方法执行之前先执行 连接操作 public void testConnect() { /* *多个连接就用逗号隔开 * @param connectString 连接字符串。zk server 地址和端口 "192.168.

Strong_shady的博客 292

【异常解决】出现 org/apache/curator/x/discovery/ServiceDiscoveryBuilder异常--【记录一次完整的异常解决】

在网上查找解决问题的方式之后发现需要添加这俩个依赖,在pom文件中添加如下依赖。在进行dubbo服务的启动的时候出现了如下错误。两次版本不兼容,将版本同步为。发现错误信息不一样了。

阿丹的博客 1684

启动异常:java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory 解决方法

Springboot:Zookeeper整合Dubbo报错: java.lang.NoClassDefFoundError: org/apache/curator/framework/CuratorFrameworkFactory 解决方法: 添加以下依赖 <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId

a251628111的博客 8843

Zookeeper-开源客户端 之 Curator

curator是Netflix公司开源的⼀套Zookeeper客户端框架,和ZKClient⼀样,Curator解决了很多Zookeeper客户端非常底层的细节开发⼯作,包括连接重连,反复注册Watcher和NodeExistsException异常等,是最流行的Zookeeper客户端之⼀。从编码风格上来讲,它提供了基于Fluent的编程风格支持1、添加依赖在pom.xml文2、创建会话Curator的创建会话方式与原生的API和ZkClient。...

凉茶铺的博客 902

java.lang.NoClassDefFoundError: org/apache/curator/x/discovery/ServiceDiscovery

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'testController': Unsatisfied dependency expressed through field 'consumerServer'; nested exception is org.springframework.beans.factory.BeanCreationException:

qq_40691438的博客 6832

java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy

java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy at com.csun.cmny.core.registry.RegistryCenterFactory.createCoordinatorRegistryCenter(RegistryCenterFactory.java:44) at com.csun.cmny.c...

This My Life - chisj 4363

SpringBoot 集成Dubbo 提示:java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy

今天搭建SpringBoot 集成Dubbo 提示如下错误信息:java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy 原因:缺少curator框架依赖 pom.xml 文件添加curator.jar 包依赖: <dependency> <groupId>org.apache...

zhouzhiwengang的专栏 5456
上一篇: Apache curator-client详解
下一篇: Thrift-client与spring集成
shift_alt_ctrl
博客等级 码龄10年 0粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值