zookeeper超时参数分析

本文深入探讨了Zookeeper中的超时参数,包括Ticks、initLimit、syncLimit、Session timeout等,分析了它们在分布式环境中的作用及影响。讨论了如何根据集群规模和性能需求来调整这些参数,以平衡可用性和容错性。同时,还涉及到了fastelection算法选举间隔和cnxTimeout,以及参数之间的约束关系,帮助理解Zookeeper在数据同步、选举和客户端连接超时的管理机制。
摘要由CSDN通过智能技术生成

zookeeper超时参数

Ticks

该参数作用:

  1. 其它时间参数的基础单位,单位为ms,如syncLimit*ticks = 同步时间;
  2. leader的PING报文发送间隔,leader每个ticks/2时间,给follower/observer发送PING报文进行集群广播,follower收到ping消息会及时提交本地session状态信息。

Ticks越小,leader广播频率越高,则分区容错性越高,但非性能损耗越大,可用性越低。直观的感觉就是业务读写QPS降低。

反之,可用性越高,但分区容错性越低。即故障恢复时间变长,数据一致性延迟越大。

考虑应用于存储高性能场景,目前ticks是2000ms,则ping的周期是1000ms,能满足普通集群(1-10节点)性能场景需求,甚至在小集群环境可以更低,如500ms一次。

由于维持ping报文,会造成leader端服务压力,建议该值根据集群规模做适当档位调整。

initLimit

该参数作用如下:

  1. follower和leader第一次连接时socket超时时间(选主完成后),若超时则重新开始选主。耗时:

T1 = N*(leader处理accept并创建线程的时间)

  1. 数据恢复传输整个快照,主要因素是快照大小和网速。耗时:

T2 = 快照最大容量/网速

  1. follower和leader连接成功,leader等待follower的确认epoch和newleader的ACK报文超时,影响该时间主要因素是快照数据同步下盘:

T3= 快照下盘时间(磁盘写速率)

实际场景耗时,以千兆网卡为例,若快照最大1G,则T2= 1024M*8/1000Mb/s = 8 s, T3 = 1G/500MB/s = 2s。T3是CPU处理级别时间,毫秒级,可以忽略不计。所以:

T1  <<  T3 <  T2  ,且initLimit *ticks = MAX(T1, T2, T3&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值