zoukankan      html  css  js  c++  java
  • ZAB协议

    ZAB协议:

    专门为ZK设计的,支持崩溃恢复的原子广播协议

    ZAB协议的特性:

    1、确保 主节点的事务提交了,从节点的事务也必须提交
    2、丢弃 在主节点上提出但是没有被提交的事务


    作用:

    1、使用主节点接收写请求,通过ZAB原子广播协议步到子节点
    2、保证全局操作顺序执行
    3、主节点挂了,整个ZK正常工作

    ZAB原理:

    ZAB节点三种状态:Following(服从主节点)、Leading(负责事务协调)、Looking(选举状态,寻找主节点)

    1、发现:ZK集群通过选举机制选出主节点,主节点维护了子节点列表
    2、同步:主节点将本身的数据与从节点同步,做到多副本存储,从节点把未消费完的队列消息处理完成后,写入到本地事务日志中;
    3、广播:接收写请求,生成事务,同步到从节点;


    广播步骤:

    1、发起写请求;
    2、主节点接收请求并转换成事务提案,生成全局唯一的ZXID;
    3、主节点给每个从节点单独分配一个FIFO阻塞队列,并将消息放进队列中;
    4、从节点把事务日志写到本地磁盘后,给主节点ACK确认
    5、主节点收到半数以上的从节点消息确认就认为消息被从节点接收成功
    6、主节点发出commit消息给从节点;同时完成自身的提交,从节点会将上一次事务提交


    ZAB四个阶段:

    1、选举
    2、主节点和从节点通信
    3、数据同步
    4、原子广播

    Life is so short,do something to make yourself happy, such as coding.
  • 相关阅读:
    OpenMP vs WinSxS
    JIT, dynarec and binary translation
    VC++2010 bug
    控制和释放共享内存块
    分配和释放信号量
    代码列表5.1 (shm.c) 尝试共享内存
    绑定和脱离
    信号量
    每个字段动态添加一个随机数
    最近做了一个红底鞋类电商网站
  • 原文地址:https://www.cnblogs.com/dongjiang/p/14166966.html
Copyright © 2011-2022 走看看