问题解决
文章平均质量分 74
极客共享家
这个作者很懒,什么都没留下…
展开
-
zookeeper超时参数分析
zookeeper超时参数Ticks该参数作用:其它时间参数的基础单位,单位为ms,如syncLimit*ticks = 同步时间; leader的PING报文发送间隔,leader每个ticks/2时间,给follower/observer发送PING报文进行集群广播,follower收到ping消息会及时提交本地session状态信息。Ticks越小,leader广播频率越高,则分区容错性越高,但非性能损耗越大,可用性越低。直观的感觉就是业务读写QPS降低。反之,可用性越高,但分区容原创 2021-04-19 10:23:08 · 1335 阅读 · 0 评论 -
zookeeper集群认证功能
zookeeper集群认证功能需求背景 当前zookeeper集群支持动态伸缩,基础配置文件会动态同步,只要待加入节点配置信息满足集群基本要求,可以自动或者手动添加到某个集群里。因此存在如下几个问题:安全性问题,由于基础配置信息(主要是ip和端口)是公共信息,容易获取。可能存在非法节点加入集群获取集群数据。 不同集群可能无法独立隔离,造成不同集群同步混乱。 新旧集群混用,可能存在新旧数据错误同步,造成数据异常。目前zookeeper在3.5.0及以上版本开始支持集群选举认证功能...原创 2021-03-31 15:29:31 · 1054 阅读 · 0 评论 -
zookeeper临时节点无法删除原因分析
1.客户端时间和服务端时间不一致,导致过期时间太长;这个是网友分析的一种场景,没遇到过2.主从节点快照不一致主节点和从节点的本地快照不一致,导致leader节点不存在从节点的session信息和临时节点信息。由于临时节点过期淘汰是由主节点操作的,因此从节点的临时节点一致存在。除非主节点发生切换,或者删除从节点快照,再重启从节点才可以恢复,否则就这样一直错下去。该问题根因是:zookeeper在3.6.0版本之前,数据一致性只通过zxid和epoch来确定,其快照实际内容是否完全一原创 2021-03-09 16:43:35 · 3241 阅读 · 1 评论 -
ZOOKEEPER WATCH事件丢失分析
Watch实现服务端 zookeeper server为每个本地client连接(不是session)维持一份watch表(map表),用于接收该client的watch请求,但不会把watch请求同步到其它节点(官方解释这样轻量化设计,好出多多…) 每次更新某个数据时,就会触发watch通知,开始遍历本地client是否有对应watch请求事件,如果有,再判断该连接是否连接正常,连接正常则立马发通知到client,否则跳过当前client,遍历下一个。与ETCD的机制不...原创 2021-03-09 14:00:13 · 1371 阅读 · 2 评论 -
Unable to load database on disk The current epoch, *, is older than the last zxid
背景 Zookeeper服务正常运行期间,随机断电后,重启设备后,概率性的无法启动zookeeper服务,启动日志报错Unable to load database on disk The current epoch, *, is older than the last zxid,原因分析Zookeeper的ZAB协议实现里,数据持久化会保存acceptedEpoch、currentEpoch和snapshot.x三种重要文件。acceptedEpoch和 currentEpo...原创 2021-03-09 13:52:08 · 732 阅读 · 0 评论