开发者社区> 问答> 正文

Zookeeper在进行数据同步前,Leader 服务器如何完成数据同步初始化?

Zookeeper在进行数据同步前,Leader 服务器如何完成数据同步初始化?

展开
收起
芯在这 2021-12-09 14:55:20 369 0
1 条回答
写回答
取消 提交回答
  • peerLastZxid:

    · 从 learner 服务器注册时发送的 ACKEPOCH 消息中提取 lastZxid(该Learner 服务器最后处理的 ZXID)

    minCommittedLog:

    · Leader 服务器 Proposal 缓存队列 committedLog 中最小 ZXIDmaxCommittedLog:

    · Leader 服务器 Proposal 缓存队列 committedLog 中最大 ZXID直接差异化同步(DIFF 同步)

    · 场景:peerLastZxid 介于 minCommittedLog 和 maxCommittedLog之间先回滚再差异化同步(TRUNC+DIFF 同步)

    · 场景:当新的 Leader 服务器发现某个 Learner 服务器包含了一条自己没有的事务记录,那么就需要让该 Learner 服务器进行事务回滚–回滚到 Leader服务器上存在的,同时也是最接近于 peerLastZxid 的 ZXID仅回滚同步(TRUNC 同步)

    · 场景:peerLastZxid 大于 maxCommittedLog

    全量同步(SNAP 同步)

    · 场景一:peerLastZxid 小于 minCommittedLog

    · 场景二:Leader 服务器上没有 Proposal 缓存队列且 peerLastZxid 不等于 lastProcessZxid

    2021-12-09 14:55:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《MSE 微服务网关》 立即下载
微服务引擎 MSE 治理中心重磅发布 立即下载
阿里云微服务引擎 MSE 2.0 线上发布 立即下载