Curator 重连策略与超时

CuratorFrameworkFactory有四种重连策略,均实现了RetryPolicy接口.

zk server端timeout参数
tickTime:zk的心跳间隔(heartbeat interval),也是session timeout基本单位.单位为毫秒.
minSessionTimeout:最小超时时间,zk设置的默认值为2*tickTime.
maxSessionTimeout:最大超时时间,zk设置的默认值为20*tickTime.


客户端实际的超时时间.
  1. int minSessionTimeout = zk.getMinSessionTimeout();    
  2. if (sessionTimeout < minSessionTimeout) {    
  3.     sessionTimeout = minSessionTimeout;    
  4. }    
  5. int maxSessionTimeout = zk.getMaxSessionTimeout();    
  6. if (sessionTimeout > maxSessionTimeout) {    
  7.     sessionTimeout = maxSessionTimeout;    
  8. }    

如果sessionTimeout的设置小于minSessionTimeout,则采用服务器的minSessionTimeout配置
如果sessionTimeout的设置大于maxSessionTimeout,则采用服务器的maxSessionTimeout配置.
客户端的超时设置,不能超过服务器端配置的范围

Curator 的客户端超时设置.
CuratorFrameworkFactory.newClient
连接超时15s
Session超时60s
  1. private static final int DEFAULT_SESSION_TIMEOUT_MS = Integer.getInteger("curator-default-session-timeout"60 * 1000);  
  2. private static final int DEFAULT_CONNECTION_TIMEOUT_MS = Integer.getInteger("curator-default-connection-timeout"15 * 1000);  
  3.   
  4.   
  5. public static CuratorFramework newClient(String connectString, RetryPolicy retryPolicy)  
  6. {  
  7.     return newClient(connectString, DEFAULT_SESSION_TIMEOUT_MS, DEFAULT_CONNECTION_TIMEOUT_MS, retryPolicy);  
  8. }  


Curator 四种重连策略
1.RetryUntilElapsed(int maxElapsedTimeMs, int sleepMsBetweenRetries) 
以sleepMsBetweenRetries的间隔重连,直到超过maxElapsedTimeMs的时间设置

2.RetryNTimes(int n, int sleepMsBetweenRetries) 
指定重连次数

3.RetryOneTime(int sleepMsBetweenRetry)
重连一次,简单粗暴

4.ExponentialBackoffRetry
ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries) 
ExponentialBackoffRetry(int baseSleepTimeMs, int maxRetries, int maxSleepMs) 

时间间隔 = baseSleepTimeMs * Math.max(1, random.nextInt(1 << (retryCount + 1)))  


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-2120610/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29254281/viewspace-2120610/

STM32N6:MCU+NPU架构如何塑边缘AI部署新范式 STM32N6作为业界首款MCU+NPU架构的通用微控制器,通过集成600 GOPS算力的NPU800MHz Cortex-M55内核,实现了边缘AI部署的革命性突破。该方案在工业视觉和智能家居等场景中,以超低功耗和成本提供实时AI处理能力,性能较传统MCU提升超100倍,塑了边缘智能设备的设计范式。 阅读详情

相关推荐

5G NR LDPC码(2)—— 从基图到速率匹配:解码5G高速数据信道的标准化设计

本文深入解析了5G NR LDPC码的标准化设计流程。从作为核心骨架的基图(BG1/BG2)出发,详细阐述了其如何通过扩展因子Z灵活生成实际校验矩阵,并协同传输块大小计算分段策略。文章点剖析了基于循环缓存和冗余版本的速率匹配机制,以及其如何高效支撑增量冗余混合自动传请求,从而确保5G高速数据信道在复杂环境下的可靠高效传输。

weixin_29206669的博客 242

zookeeper超时--minSessionTimeoutmaxSessionTimeout

很多同学可能有这样的疑问,我明明把连接zk客户端的超时时间sessionTimeout设置为180秒了,可是为什么仅仅过了40几秒就超时了?     其实只这么设置,根本没有任何作用,因为客户端将sessionTimeout的值传给zk时,zk还会根据minSessionTimeoutmaxSessionTimeout两个参数新调整最后的超时值 Java代码   publ

xiaolang85的专栏 2万+

【异常】OpenAI提示内容有误 Invalid prompt: your prompt was flagged as potentially violating our usage policy.

用户需优先调整提示内容,确保符合OpenAI的使用政策。若问题持续,建议结合请求ID和具体代码示例联系官方支持。同时,可参考腾讯云、Microsoft Q&A等平台提供的错误处理实践(如试机制、日志记录)优化代码健壮性。

奶爸的编程之路,也就一周冷个三天 1903

zookeeper的maxSessionTimeout默认值导致hbase regionserver超时

zookeeper的maxSessionTimeout默认值导致hbase regionserver超时 在hbase中经常会遇到regionserver挂掉的情况,查看日志会看到这样的错误信息 2016-02-16 11:51:24,882 WARN [master/hadoop02/192.168.100.5:6000] zookeeper.ZKUti...

weixin_34117522的博客 986

笃行杂记之Zookeeper SessionTimeOut分析

0.前言 本文为笃行日常工作记录,烂笔头系列。 源码前面,了无秘密 — by 侯杰 近期的一个C++项目里使用了Zookeeper做服务发现,期间遇到了SessionTimeOut问题的困扰,明明通过zookeeper c client设置了超时时间,但无效。 请原谅我一开始对zookeeper不熟悉。最终通过分析源码了解到Session...

weixin_34044273的博客 766

zookeeper设置客户端连接超时被expired

在网络环境非常差的情况下,使用zookeeper集群往往会遇到连接expired了: 客户端提示连接从ZOO_CONNECTION_STATE变为ZOO_EXPIRED_SEESION_STATE,然后应用失去zookeeper集群的连接。 在使用过程中,我们一般会加大客户端的rec_timeout值,例如设置为30s,但对是否发生expired没有太大影响,仔细查看文档发现要在服...

dimawei2225的博客 2757

Zookeeper-分布式锁

一、zookeeper基础知识 1、zookeeper节点 Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Znode。 2、zookeeper节点类型 Znode分为四种类型: 1)持久节点(PERSISTENT) 默认的节点类型。创建节点的客户端zookeeper断开连接后,该节点依旧存在 。 2)持久节点顺序节点(PERSISTENT_SEQUE...

mazhongjia的博客 1282

zookeeper开源框架curatorConnectionStateListener机制

zookeeper的开源框架curator提供了连的机制 近期我做的一个开源项目分布式调度平台xj-job中执行器调度中心解耦,用到了zookeeper做为执行器注册中心,执行器启动向zookeeper注册执行器信息临时节点,当执行器停止会自动剔除,curator提供了客户端连机制,进程阻塞导致的zookeeper客户端会话超时,导致的zookeeper启用连机制。 Exponenti...

lishentao_1122的博客 4431

10 curaror入门

文章目录1 curaror简介2 创建连接2.1 创建连接2.2 策略 1 curaror简介 urator是Netflix公司开源的一个zookeeper客户端,后捐献给apache, curator框架在zookeeper原生API接口上进行了包装,解决了很多zooKeeper客户端非常 底层的细节开发。提供zooKeeper各种应用场景(比如:分布式锁服务、集群领导选举、 共享计数器、缓存机制、分布式队列等)的抽象封装,实现了Fluent风格的API接口,是最好用,最流行的zookeeper的客户

wyaoyao93的博客 161

Zookeeper - 客户端的连机制会话保持实操

📌 文章摘要 本文深入解析 Zookeeper 客户端的连机制会话保持,涵盖核心原理Java实操。主要内容包括: 1️⃣ 会话机制:会话ID、超时时间及心跳维持,确保临时节点不丢失。 2️⃣ 连流程:自动检测连接中断,通过会话ID和密码恢复会话,失败则按策略(如指数退避)试。 3️⃣ Curator实操:演示Java客户端使用ExponentialBackoffRetry策略,监听连接状态并创建临时节点。 4️⃣ 调优建议:合理设置会话超时、处理临时节点丢失,结合Mermaid流程图清晰展示

千淘万漉虽辛苦,吹尽狂沙始到金 8859

Zkclient和Curator的使用

一、ZkClient的客户端 优点: zkclienrt是一个开源的框架,是在原生的zookeeper原生的API的基础上进行的包装; 内部实现了Session 超时连; Wacther 的反复的注册; 1、 ZKClient启动 zkClient在启动的时候主要做了几件事: 1、指定连接的字符串zkServers ,sessionTimeout,ZkSerializer 序列化工具; ...

xiaocaodeshengri的博客 1237

软件架构-zookeeper之curator详解

为了更好的实现java操作zookeeper服务器,后来出现Curator框架,非常的强大,目前已经是apache的顶级项目,里面提供了更多丰富的操作。例如:session超时连,主从选举,分布式计数器,分布式锁等适用于各种复杂的zookeeper场景的API封装。 源码:https://github.com/limingios/netFuture/源码/『互联网架构』软件架构-zookeeper之curator详解(36) 官方源码 http://curator.apache.org/ 这个跟z.

IT架构圈博客 446

Zookeeper - 客户端的连接断开:参数配置实操

摘要 本文围绕 ZooKeeper 客户端的连接断开 展开,详细介绍了其核心机制配置方法。首先阐述了 ZooKeeper 在分布式系统中的要性,强调连接管理对系统稳定性的影响。文章深入分析了连接建立的流程,包括会话初始化、状态同步及关键参数(如超时时间、策略)的配置,并提供了 Java 示例代码演示客户端实现。接着探讨了连接断开的常见原因(网络中断、会话超时等)及应对策略,帮助开发者优化容错能力。通过理论结合实践,本文为构建高可用的 ZooKeeper 应用提供了实用指导。

千淘万漉虽辛苦,吹尽狂沙始到金 7469

ZK学习笔记

目录 ZK保证什么 会话 zookeeper的会话 curator的会话 注意事项 问题 ZK保证什么 总结下来来说, 对于写操作,ZK保证同一个客户端的写是顺序的,原子。而且数据一旦被写入就是持久的。 “同一个客户端”很要,因为ZK无法确保多个客户端的时钟,所以无法保证多个客户端的写顺序。 “同一个客户端”指的是同一个会话,多个线程的会话,或者一个线程的多个会话都是无...

btb0815的博客 890

Zookeeper客户端curator使用详解

简介 curator是Netflix公司开源的一个Zookeeper客户端框架,curator框架在Zookeeper原生的API接口上进行了封装,屏蔽了Zookeeper原生客户端非常底层的细节开发,使得使用更加方便。并且还提供了Zookeeper多种应用场景的封装,比如分布式锁服务、集群领导选举等场景实现的封装,还实现了Fluent风格的链式调用API,是最好用,最流行的Zookeeper客户端。 原生Zookeeper的不足: 连接对象异步创建,需要开发人员自行编码等待。 连接没有会话超时自动连机

qq_40837310的博客 1375

将zookeeper curatorSSM项目进行整合(点)

第一步:在spring容器里面新增application-zookeeper.xml配置文件 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.o...

Richard_666的博客 307

Zookeeper——4、使用Curator操作Zookeeper

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

隔壁老王的专栏 1万+

Zk之Curator

基础API: @Slf4j public class CuratorBase { //zk服务地址 static final String zk_path = "x.x.x.x:2181"; //会话超时 static final int session_timeout=5000; /** * 创建客户端 * @return */ private static CuratorFramework createClient()

weixin_38289303的博客 360

【zookeeper 第四篇章】Curator

一、概述 Curator是 Netflix 开源的一套 zookeeper 客户端框架,解决原生 Api 的好多问题。 二、添加依赖 登录后复制 <!-- 对zookeeper的底层api的一些封装 --> <dependency> <...

weixin_33739387的博客 143

【ZooKeeper】Curator 简单介绍以及连接zookeeper 策略的简单使用

zookeeper的原生API的不足之处: 超时连,需要手动操作 watcher注册一次后会失效 不支持递归创建节点 Curator封装了很多,更加简单易用 Curator是一个比较完善的ZooKeeper客户端框架,通过封装的一套高级API简化了ZooKeeper的操作。Curator框架主要解决了三类问题: 封装ZooKeeper ClientZooKeeper Server之间的连接处理(提供连接试机制等)。 提供了一套Fluent风格的API,并且在Java客户端原生API的基础上进行了增

小灰狼与大白兔的博客 8865

ZK Curator框架

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

IT_10000 601

ZooKeeper 客户端断线连机制深度解析:从自动连到会话恢复

在分布式环境中,网络故障是不可避免的。ZooKeeper 作为协调服务,必须保证客户端在遇到网络问题时能够自动恢复,而不影响业务逻辑。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;自动连正常连接TCP连接网络故障新连接连接中断客户端ZooKeeper节点1ZooKeeper节点2。

✨ 欢迎来到【Seal ^_^ 的CSDN博客】!✨ 1627
上一篇: Maven学习
下一篇: 小叶紫檀
coolmsn8786
博客等级 码龄12年 8粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值