zoukankan      html  css  js  c++  java
  • 数据同步?

    整个集群完成 Leader 选举之后,Learner(Follower 和 Observer 的统称)回向
    Leader 服务器进行注册。当 Learner 服务器想 Leader 服务器完成注册后,进入 数据同步环节。
    数据同步流程:(均以消息传递的方式进行)
    Learner 向 Learder 注册
    数据同步
    同步确认
    Zookeeper 的数据同步通常分为四类:
    1、直接差异化同步(DIFF 同步)
    2、先回滚再差异化同步(TRUNC+DIFF 同步)
    3、仅回滚同步(TRUNC 同步)
    4、全量同步(SNAP 同步)
    在进行数据同步前,Leader 服务器会完成数据同步初始化:
    peerLastZxid:
    从 learner 服务器注册时发送的 ACKEPOCH 消息中提取 lastZxid(该
    Learner 服务器最后处理的 ZXID)
    minCommittedLog:
    Leader 服务器 Proposal 缓存队列 committedLog 中最小 ZXID
    maxCommittedLog:
    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

  • 相关阅读:
    截取小数位数(准确四舍五入及直接截取)
    水印
    用心整理的 献丑啦 一些关于http url qs fs ...模块的方法
    html禁止清除input文本输入缓存的两种方法
    flink写入elasticsearch报错!OOM内存溢出!连接异常关闭!
    实现网格建造系统
    AcWing 1064. 小国王
    AcWing 1052. 设计密码
    KMP 模板
    AcWing 1058. 股票买卖 V
  • 原文地址:https://www.cnblogs.com/programb/p/13019415.html
Copyright © 2011-2022 走看看