栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Curator的四个超时时间配置

Curator的四个超时时间配置

curator 4.2.0
zk 3.4.14

sessionTimeoutMs
    等同于zk原生client的会话超时时间。与zk服务端协商后获得最终值(2~20个ticktime范围内),curator默认传60s。心跳间隔或连接断开时间超出该值,客户端、服务端一旦检测到都会主动失效会话。原生客户端readTimeout默认为 2/3个sessionTimeout,连接超时sessionTimeout / 配置的zk节点数。
    前者当读数据间隔超过这个时间抛出sessionTimeout(为什么2/3就抛了?看后面),后者是连接的时候好理解:

    心跳是最长1/3 sessionTimout时间就会发出一个,或者发送间隔达到10s。所以:
    a. 任何对zk的请求都会刷新心跳
    b. 静默下一个sessionTimeout内三次心跳
    c. 结合4中readTimeout,上次心跳后,到第二次心跳最长是 1/3 sessionTimout,发出后,在等2/3 sessionTimeout服务端没返回,则正好走完一个超时周期,抛出session超时,所以上面是 2/3(代码中写 1-2/3更容易理解)
connectionTimeoutMs

默认15s 有两个地方用到

    内部默认等待客户端和zk建立连接的时间。(原生如果失败会一直轮询去连)
    background异步操作连接超时后丢弃重试任务用的(题外话,这个异步任务队列是个延迟队列,网络异常配合TreeCache等会有内存积压风险)

    如果任务入队已经经过了连接超时个时间,且期间没有和zk连上,重试任务会加入下一次重试或到次数被抛弃(报Background retry gave up)
waitForShutdownTimeoutMs

默认0,ZooKeeper.close(n)时这个n,如果入参0,则进行关闭后不等待,如果入参正数,则会等待zk 收发线程关闭,最大等待时间为该值。

maxCloseWaitMs

默认1s,curator 退出的时候,等待线程池关闭(内部任务结束)的时间。这个线程池就是给异步任务重试用的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774943.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号