lz
lz
发布于 2026-01-07 / 22 阅读
0
0

zookeeper

下面给你 3 套「可直接照抄」的学习方案(从 0 到能上线),并附上最新、可免费看的视频/专栏/资料包链接。按“可投入时间”对号入座即可。

------------------------------------------------

方案 A:3 天速通(能跑就行)

------------------------------------------------

目标

1. 本地搭起 3 节点伪集群

2. 会 create/set/get/delete + 监听器

3. 用 Java 写出“分布式锁”Demo

Day1 环境+命令

- 视频:黑马「Zookeeper 快速入门」第 1~6P(B 站,总时长 1.5 h)

- 动手:

```bash

docker run -d --name zk1 -p 2181:2181 zookeeper:3.8

zkCli.sh → create /lock “” & get -w /lock

```

Day2 Java API

- 视频:继续看同一套第 7~9P(Curator 连接、创建节点、Watcher)

- 代码:用 Curator 写出“10 线程抢锁,只 1 个能拿到”的单元测试

Day3 小项目

- 把上面的锁嵌入一个“抢优惠券”控制台程序,验证 30 s 内无死锁即可收工

- 彩蛋:把 zk-ui 跑起来,截图发博客,3 天闭环。

------------------------------------------------

方案 B:2 周实战(可写简历)

------------------------------------------------

目标

1. 掌握 4 大经典场景:配置中心、Master-Worker、分布式锁、队列

2. 集群真机部署 + 四字命令监控

3. 能回答面试高频:ZAB 协议、监听器一次性、羊群效应、脑裂规避

Week1 基础+场景

- 视频:

– 尚硅谷 2025 版「Zookeeper 教程」1~22P(B 站,含 ZAB、Paxos 动画)

– 腾讯课堂「Zookeeper 入门」第 3~7 章(Paxos/ZAB/监听器)

- 文章:知乎专栏「Zookeeper 入门教程」命令速查表

- 代码:

– 配置中心:Spring Boot + @ConfigurationProperties + PathChildrenCache

– Master-Worker:最小序号选举,宕机 30 s 重新选主

Week2 集群+运维

- 视频:墨天轮「实战 ZooKeeper 深度揭秘」第 14~16P(生产环境安装、Observer 跨机房、监控)

- 动手:

– 5 台虚拟机(或 Docker Compose)起真实集群

– 用 stat/ruok/cons + Prometheus exporter 做监控大盘

– 模拟 kill -9 leader,验证 30 s 内恢复写入

- 输出:把整个过程写成 1 篇 2000 字技术博文 → 简历亮点 get

------------------------------------------------

方案 C:1 个月源码级(面试/调优)

------------------------------------------------

目标

1. 通读 ClientCnxn、Leader/Follower 通信、ZAB 恢复阶段源码

2. 能根据 zxid 定位“集群无法选主”根因

3. 贡献一次 ZooKeeper PR(文档/UT/小特性均可)

阶段1 源码环境

- 视频:xiangsuli.com「ZooKeeper 实战与源码剖析」全部 15 讲(含跨区域部署)

- 拉源码git clone https://github.com/apache/zookeeper.git -b release-3.8.4

- IDEA 启动单机 QuorumPeerMain,断点跟一次 create 请求

阶段2 关键链路

- 跟读:

– 客户端:ClientCnxn.SendThread→Request→Packet

– 服务端:PrepRequestProcessor→SyncRequestProcessor→Ack→Commit

- 画一张“ZAB 消息时间轴”思维导图,把 epoch/zxid/lastProcessedZxid 标清楚

阶段3 实战调优

- 墨天轮课件第 15P 性能调优 checklist

- 自己压测:

– 把 snapCount/jute.maxbuffer/sessionTimeout 各改一次,看 TPS 变化

– 用 jstack -l 抓一次“DeadLock”场景(故意写错锁顺序)

- 贡献:给官方提一个 UT 或改一行日志,合并即圆满收官

------------------------------------------------

资料一键汇总(全部免费)

------------------------------------------------

1. B 站合集

- 黑马快速入门(含 Curator)

- 尚硅谷 2025 完整版(含 ZAB/Paxos 动画)

2. 图文专栏

- 知乎「Zookeeper 入门教程」命令速查

- CSDN「Zookeeper 详细入门」集群搭建脚本

3. 课件 & 源码

- 墨天轮 16P 课件下载(跨区域部署+监控)

- xiangsuli 源码剖析视频

------------------------------------------------

怎么选?

------------------------------------------------

- 只想面试不踩坑 → 方案 A 即可

- 简历写“熟悉分布式协调” → 按方案 B 走,输出一篇博客足够

- 目标是“源码面/架构师” → 直接方案 C,1 个月后能跟面试官聊 ZAB 恢复阶段源码

祝学习顺利,记得边学边写笔记,90 % 知识点自己讲一遍才算真正掌握!


评论