解决什么痛点:从“知道概念”到“能抗住生产”

很多开发者对 ZooKeeper 的印象停留在分布式锁和选举这两个名词上,一旦遇到集群脑裂、Watcher 丢失或会话超时,就无从下手。这门课的核心价值,在于把 ZooKeeper 从“面试八股”还原成“工程工具”。它不满足于教你怎么写 API,而是深入剖析 ZAB 协议、Leader 选举机制以及数据一致性模型,让你理解为什么某些操作是原子的,以及底层节点是如何同步的。课程特别设置了一个关键环节:生产环境的安装配置与监控。这意味着你不仅要会写代码,还要知道如何部署 Observer 节点实现跨区域容灾,以及如何监控 JVM 内存和连接数,防止服务在高峰期因堆内存溢出而崩溃。这是很多教程缺失、但实际工作中必须掌握的硬技能。

适合谁看:有 Java 基础,想补齐分布式中间件短板的人

如果你是后端开发,且已经熟悉 Java 并发编程,但从未亲手搭建过 ZooKeeper 集群,或者对 Curator 框架的使用仅限于 CRUD 操作,那么这门课正好切中你的能力缺口。它假设你懂基本的命令行操作和网络概念,不需要从零解释什么是 TCP/IP。课程内容循序渐进,从单机实验到 Master-Worker 协同模式,再到分布式队列和锁的实现,每一块都配有具体的代码示例。你需要关注的是,课程特意用 Apache Curator 章节替代了繁琐的原生 API 繁琐调用,这意味着你将学到的是业界主流的生产级写法,而不是过时的教科书代码。此外,源码剖析部分适合那些想看明白 ZooKeeper 内部数据结构(如 znode 的 B+ 树变体实现)的进阶学习者,帮助你在处理复杂分布式场景时,能判断出问题根源是在网络分区还是数据结构冲突。

怎么学最有效:按场景驱动,边看边敲

建议不要按顺序从头读到尾,而是采用“场景驱动”的学习策略。首先快速过完前三节,建立 ZK 的核心认知模型,然后直接进入第 6、10、11、12 节,分别动手实现 Master-Worker 任务分发、分布式队列、分布式锁和选主逻辑。这四个例子是 ZooKeeper 最经典的四大应用场景,做完这四个,你就掌握了它 80% 的常用功能。接下来,务必细读第 14 和 15 节,这是区分“玩具代码”与“生产代码”的分水岭,尝试在你的本地或云服务器上搭建一个三节点集群,并配置简单的监控指标。最后,通过第 13 节的 Curator 框架学习,将之前手写的原生代码重构为基于 Retry Policy 和 Cache 的生产级代码。学完后,你应该能够独立设计一个高可用的分布式配置中心方案,并能解释清楚在 Network Partition 发生时,ZooKeeper 是如何保证 CP 特性的。

课程目录

未分组

  1. 01 _ 课程介绍
  2. 02 _ 内容综述
  3. 03 _ 什么是ZooKeeper?
  4. 04 _ ZooKeeper提供什么服务?
  5. 05 _ 开始使用ZooKeeper
  6. 06 _ 使用ZooKeeper实现Master-Worker协同
  7. 07 _ ZooKeeper架构解析
  8. 08 _ ZooKeeper API简介
  9. 09 _ ZooKeeper API:Watch示例
  10. 10 _ 使用ZooKeeper实现分布式队列
  11. 11 _ 使用ZooKeeper实现分布式锁
  12. 12 _ 使用ZooKeeper实现选举
  13. 13 _ 使用Apache Curator简化ZooKeeper开发
  14. 14 _ 如何安装配置一个ZooKeeper生产环境?
  15. 15 _ 如何进行ZooKeeper的监控?
  16. 16 _ 通过ZooKeeper Observer实现跨区域部署
  17. 17 _ 通过动态配置实现不中断服务的集群成员变更
  18. 18 _ ZooKeeper节点是如何存储数据的_
  19. 19 _ 使用ZooKeeper实现服务发现(1)
  20. 20 _ 使用ZooKeeper实现服务发现(2)
  21. 21 _ 使用ZooKeeper实现服务发现(3)
  22. 22 _ Kafka是如何使用ZooKeeper的_
  23. 23 _ 什么是Paxos协议_
  24. 24 _ 对比Chubby和ZooKeeper
  25. 25 _ Raft协议解析
  26. 26 _ 什么是etcd?
  27. 27 _ etcd API: KV部分
  28. 28 _ etcd API:Watch和Lease部分
  29. 29 _ 使用etcd实现分布式队列
  30. 30 _ 使用etcd实现分布式锁
  31. 31 _ 如何搭建一个etcd生产环境?
  32. 32 _ 存储数据结构之B+tree
  33. 33 _ 存储数据结构之LSM
  34. 34 _ 本地存储技术总结
  35. 35 _ ZooKeeper本地存储源码解析
  36. 36 _ 网络编程基础
  37. 37 _ 事件驱动的网络编程
  38. 38 _ Java的事件驱动网络编程
  39. 39 _ ZooKeeper的客户端网络通信源码解读
  40. 40 _ ZooKeeper的服务器网络通信源码解读
  41. 41 _ ZooKeeper的Request Processor源码解读
  42. 42 _ Standalone的ZooKeeper是如何处理客户端请求的?
  43. 43 _ Quorum模式下ZooKeeper节点的Request Processor Pipeline
  44. 44 _ ZooKeeper的Leader Election
  45. 45 _ ZooKeeper的Zab协议
  46. 46 _ 客户端和服务器端交互:Watch和Session
  47. 47 _ 结课测试&结束语