zookeeper-3.4.6总结

2026/4/23 20:57:10

? ?

Zk server启动后会将最近最多500条事务保存在committedLog队列中,以便于leader->follower的增量同步。 同步策略说明

SNAP:leader将内存数据库快照序列化后发送给learner,learner全量替换本地的内存数据库

DIFF:以proposal+commit的方式,将committedLog的事务依次发给learner TRUNK:leader向learner发送(TRUNK+zxid)的消息,learner将日志删除到事务zxid位置

根据learner的lastZxid与committedLog的对应关系,将采用不同的同步策略: 1、 lastZxid小于minCommittedLog,采用SNAP全量同步策略

2、 lastZxid在minCommitedLog到maxCommittedLog之间,并包含在

committedlog之中,走DIFF增量同步策略

3、 lastZxid在minCommitedLog到maxCommittedLog之间,但不包含在

committedlog之中(发生此情况的场景为:leader发送proposal成功之前,虽然记录到了本地但是其它follower并没有记录,导致数据丢失,但是client一样会认为操作失败),走TRUNK+DIFF同步策略.

4、 这种情况几乎不能发生,我能想到的是follower首先记录了该事务日志,但突然宕

机了,重启以后其它leader和follower依然还未执行记录该事务日志的操作。这种情况走TRUNK同步策略。

?

?

committedLog是提交以后的事务日志,那么等待ack以及正在被finalRequestProceesor处理的是什么时候发送的呢? 答:Leader使用outstandingProposals等待ack的proposal,使用toBeApplied队列存放收到大多数ack但还没有被最终处理的proposal。在发送完数据库快照或者

committedlog后,紧接着会发送toBeApplied和outstandingProposals,然后将follower添加到forwarding列表,开始参与事务投票(proposal-ack-commit)的过程,以此来保证learner不会丢失任何事务消息


zookeeper-3.4.6总结.doc 将本文的Word文档下载到电脑
搜索更多关于: zookeeper-3.4.6总结 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219