你会学到什么?
- 基础篇:系统梳理 ZooKeeper 整体架构和核心概念。
- 原理篇:图文详解 ZooKeeper 核心功能的设计思想。
- 源码篇:由浅入深推导式解析 ZooKeeper 核心源码。
- 补充篇:分享 ZooKeeper 的优秀设计和高频面试题。
课程简介
在当今互联网分布式时代,大家所采用的技术栈几乎都不会离开 ZooKeeper,即便没直接使用但也一定在隐式使用。比如你在用的一些技术:Kafka、Canal、HBase 等优秀开源框架,它们的注册中心都采取 ZooKeeper
。
ZooKeeper 的应用场景是很多的,比如你是否遇到过如下问题:
- 你要实现一把靠谱的分布式锁,你知道 Redis 实现分布式锁是不安全的,那有没有更安全的方式呢?
- 大名鼎鼎的分布式 ID 实现方案——雪花算法,存在时钟回拨的情况,那如何解决时钟回拨的问题呢?
- 很多优秀开源中间件都采取 ZooKeeper 作为注册中心,那 ZooKeeper 是如何管理的呢?性能怎么样?
- ZooKeeper 宕机重启了,数据到底会不会丢失呢?
- ……
前两个问题在当今互联网时代很常见了,但是我们怎么去解决呢?有的从业人员可能知道可以用 ZooKeeper 去解决,那么为什么用 ZooKeeper 能解决呢?ZooKeeper 是如何实现这些特性的呢?……一系列黑盒问题扑面而来。
因此,如果我们只是停留在使用 API 阶段,那是远远不够的,我们需要掌握其核心设计思想和源码,以及优秀的代码设计,这对自身成长会有很大的帮助。
本小册会从 0 到 1 开始剖析 ZooKeeper
,但是并不会一上来就进行源码剖析,而是会采取“如何设计一个 ZooKeeper?”这种推导式的教学方式
,带着你先学习其中的设计思想,然后再按照我们的设计进行源码剖析。比如,要设计一个 ZooKeeper 的 Leader 选举机制,那本小册会先带着你了解 Leader 选举是什么,然后再思考如果让你实现 Leader 选举,那么你该如何实现才是最稳妥的?一步步地推导出完整的设计思想,最后再带着我们这套设计思想去深入到开源框架的源码中去验证是不是这么实现的。
本小册主要有四大核心模块:基础篇、原理篇、源码篇。另外,还会有个补充篇模块作为扩展。
- 我们可以从
基础篇
学习到 ZooKeeper 的基本用法以及核心概念。 - 掌握了 ZooKeeper 的基础后,我们来到
原理篇
,原理篇我们将会剖析 ZooKeeper 的特性、设计思想以及底层实现原理。 - ZooKeeper 的原理掌握后自然要进入我们的
源码篇
,源码篇我们将会对原理篇的设计思想进行代码落地,相当于设计思想是需求,源码是对需求的实现方式。 - 最后在
补充篇
会总结 ZooKeeper 当中比较好的源码设计,学习优秀开源框架是如何巧妙采取设计模式进行编码的,并且还会通过面试题的方式来总结我们本小册核心内容。
关于整个小册的知识体系,你可以参考下面的知识导图
👇:
课程目录
1 开篇词:扬帆起航,一起探索 ZooKeeper 核心原理
2 基础篇:ZooKeeper 究竟是什么?
3 基础篇:一文掌握 ZooKeeper 的核心概念(一)
4 基础篇:一文掌握 ZooKeeper 的核心概念(二)
5 基础篇:ZooKeeper 客户端演示以及核心参数
6 原理篇:Leader 选举底层原理剖析(一)
7 原理篇:Leader 选举底层原理剖析(二)
8 原理篇:Leader 选举底层原理剖析(三)
9 源码篇:Leader 选举底层源码剖析
10 源码篇:Leader 选举网络通信底层原理剖析
11 原理篇:Session 机制底层原理大揭秘
12 源码篇:Session 机制底层源码剖析(一)
13 源码篇:Session 机制底层源码剖析(二)
14 原理篇:ZooKeeper 是如何处理一次 create 请求的?
15 源码篇:一次 CRUD 请求从客户端到服务端底层源码(一)
16 源码篇:一次 CRUD 请求从客户端到服务端底层源码(二)
17 源码篇:一次 CRUD 请求从客户端到服务端底层源码(三)
18 源码篇:一次 CRUD 请求从客户端到服务端底层源码(四)
19 原理篇:ZooKeeper 持久化相关底层原理剖析
20 源码篇:ZooKeeper 持久化之事务日志底层源码剖析
21 源码篇:ZooKeeper 持久化之快照文件底层源码剖析
22 源码篇:ZooKeeper 持久化之数据恢复底层源码剖析
23 源码篇:ZooKeeper 非 Leader 节点如何与 Leader 节点同步数据的?
24 原理篇:监听器 Watch 机制底层原理剖析
25 源码篇:监听器 Watch 机制底层源码剖析
26 补充篇:ZooKeeper 源码设计模式学习
27 补充篇:ZooKeeper 经典面试题剖析
28 补充篇:再谈 ZAB 协议
29 结束语:温故知新,总结 ZooKeeper 核心原理
讲师介绍
编程界的小學生,高级架构师,曾先后任职于北京百度移信、跟谁学。参与过百万/千万级高并发 C 端系统的设计与研发以及基础架构工作,主导过 RocketMQ 、Eureka ,以及 Sentinel 框架的二次开发工作,平时喜欢钻研开源技术。
《Hello,分布式锁》小册作者。
个人比较喜欢一句话:英雄不问出处,授人以鱼不如授人以渔。