全部学科
NodeJS全栈
nodejs
Python全栈
python
📝 1 篇文章 12 道配套习题

ZAB协议与一致性保证专题

专题说明

本专题深入讲解ZooKeeper ZAB协议,包括协议设计目标、消息广播流程、崩溃恢复机制、ZXID设计、一致性保证、写请求链路等核心知识。

学习目标

  1. 理解ZAB协议设计目标和核心特性
  2. 掌握消息广播两阶段提交流程
  3. 理解崩溃恢复机制和数据同步
  4. 掌握ZXID结构和Epoch机制
  5. 理解顺序一致性保证原理

学习内容

  • ZAB原子性、顺序性、可恢复性设计目标
  • Proposal提议、ACK确认、Commit提交流程
  • Leader崩溃选举恢复、数据同步、Epoch更新
  • ZXID高32位Epoch+低32位Counter
  • FIFO顺序、全局事务序、写请求处理链路

学习建议

  • 重点理解两阶段提交和过半确认机制
  • 理解Epoch防止旧Leader假复活的作用
  • 掌握ZXID结构便于分析选举和同步
  • 理解写请求必须Leader处理的限制

📝 配套习题(12 题)

💡 参考答案在文末
判断题
1

ZooKeeper保证全局事务序,所有节点看到的事务顺序相同。

A

B

单选题
2

ZAB协议的全称是什么?

A

ZooKeeper Atomic Broadcast

B

ZooKeeper Agreement Broadcast

C

ZooKeeper Atomic Balance

D

ZooKeeper Agreement Balance

3

ZAB协议消息广播流程中,Leader收到过半Follower确认后执行什么操作?

A

直接丢弃提案

B

向所有Follower发送COMMIT消息

C

等待所有Follower确认

D

重新发送提案

4

ZAB协议崩溃恢复模式的主要目的是什么?

A

提高写入性能

B

选举新Leader并保证数据一致性恢复

C

清理旧的事务日志

D

扩展集群节点

5

ZooKeeper的ZXID(事务ID)由哪两部分组成?

A

高32位:服务器ID,低32位:事务序号

B

高32位:纪元号(epoch),低32位:计数器

C

高32位:时间戳,低32位:随机数

D

高32位:事务类型,低32位:事务序号

6

ZooKeeper的顺序一致性是指什么?

A

所有客户端在同一时刻看到相同数据

B

客户端按请求发送顺序看到事务效果

C

所有节点立即同步数据

D

事务按时间戳排序

7

客户端向Follower节点发送写请求时,请求处理流程是什么?

A

Follower直接写入本地数据

B

Follower转发给Leader,Leader生成提案后广播

C

Follower拒绝写请求

D

Follower自己选举成为Leader处理

多选题
8

ZAB协议主要保证哪些特性?

A

全局数据一致性

B

事务的顺序性(FIFO)

C

崩溃后的恢复能力

D

高吞吐量的写入性能

9

ZAB协议消息广播流程包含哪些阶段?

A

Leader生成Proposal并发送给Follower

B

Follower写入事务日志并返回ACK

C

Leader收到过半ACK后发送COMMIT

D

所有节点提交事务并更新内存数据

10

ZAB协议崩溃恢复过程中,新Leader需要处理哪些情况?

A

丢弃只在Leader上存在但未过半确认的Proposal

B

提交已过半确认但未COMMIT的Proposal

C

让Follower同步到最新数据状态

D

重新选举Leader直到所有节点同意

11

ZooKeeper写请求从客户端到完成的完整处理链路包含哪些步骤?

A

客户端发送写请求到任意节点

B

Leader生成Proposal并广播

C

Follower写入事务日志并ACK

D

Leader收到过半ACK后COMMIT

填空题
12

ZooKeeper的____________是64位事务ID,高____________位存储____________,低32位存储计数器,用于判断数据新旧。

参考答案
1.正确 2.A 3.B 4.B 5.B 6.B 7.B 8.A;B;C 9.A;B;C;D 10.A;B;C 11.A;B;C;D 12.ZXID;32;纪元号(epoch)
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
下一个专题 → ZAB协议深度解析专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码