Salmon的全栈知识 Salmon的全栈知识
首页
  • JavaSE
  • JavaWeb
  • Spring生态
  • JUC
  • JVM
  • Netty
  • Java各版本特性
  • 23种设计模式
  • Maven
  • Java常用框架
  • Dubbo
  • OpenFeign
  • Nacos
  • Zookeeper
  • Sentinel
  • Seata
  • SpringCloud Gateway
  • Apollo
  • Eureka
  • Go基础
  • Gin
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
    • ElasticSearch
  • 消息中间件

    • RabbitMQ
    • RocketMQ
    • Kafka
    • ActiveMQ
    • MQTT
    • NATS
  • 网关中间件

    • Nginx
  • Linux
  • Docker
  • Git
  • K8s
  • Solidity
  • Java
  • 计算机网络
  • 操作系统
GitHub (opens new window)
首页
  • JavaSE
  • JavaWeb
  • Spring生态
  • JUC
  • JVM
  • Netty
  • Java各版本特性
  • 23种设计模式
  • Maven
  • Java常用框架
  • Dubbo
  • OpenFeign
  • Nacos
  • Zookeeper
  • Sentinel
  • Seata
  • SpringCloud Gateway
  • Apollo
  • Eureka
  • Go基础
  • Gin
  • SQL数据库

    • MySQL
    • Oracle
  • NoSQL数据库

    • Redis
    • MongoDB
    • ElasticSearch
  • 消息中间件

    • RabbitMQ
    • RocketMQ
    • Kafka
    • ActiveMQ
    • MQTT
    • NATS
  • 网关中间件

    • Nginx
  • Linux
  • Docker
  • Git
  • K8s
  • Solidity
  • Java
  • 计算机网络
  • 操作系统
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 简介
  • 数据模型
  • 单机安装
  • 常用shell命令
  • Acl权限控制
  • JavaAPI
  • 事件监听机制
  • 集群搭建
  • zab协议
  • leader选举
  • observer角色及其配置
  • zookeeperAPI连接集群
  • 开源客户端curator介绍
  • 四字监控命令
  • 图形化的客户端工具(ZooInspector)
  • taokeeper监控工具的使用
  • 《Zookeeper》笔记
Salmon
2025-07-22

zab协议

zab协议 的全称是 Zookeeper Atomic Broadcast (zookeeper原子广播)。zookeeper 是通过 zab协议来保证分布式事务的最终一致性

基于zab协议,zookeeper集群中的角色主要有以下三类,如下表所示:

角色 说明
Leader 负责提议和发起投票,事务的唯一调度者和决策者
Follower 接收客户端请求,转发给 Leader,参与投票
Observer 接收客户端请求,将请求转发给 Leader,不参与投票,提高集群读性能

zab广播模式工作原理,通过类似两阶段提交协议的方式解决数据一致性:

  1. leader从客户端收到一个写请求

  2. leader生成一个新的事务并为这个事务生成一个唯一的ZXID

  3. leader将这个事务提议(propose)发送给所有的follows节点

  4. follower节点将收到的事务请求加入到历史队列(history queue)中,并发送ack给leader

  5. 当leader收到大多数follower(半数以上节点)的ack消息,leader会发送commit请求

  6. 当follower收到commit请求时,从历史队列中将事务请求commit

上次更新: 2025/07/23, 07:26:30
集群搭建
leader选举

← 集群搭建 leader选举→

Theme by Vdoing | Copyright © 2022-2025 Salmon's Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式