“ZooKeeper分布式专题与Dubbo微服务入门”是一套典型的分布式系统与微服务架构进阶课程,核心目标是让开发者理解并掌握:如何在分布式环境下做服务治理、协调与高可用架构设计。
一、课程定位
该课程围绕 Apache ZooKeeper 与 Apache Dubbo 展开,重点解决单体系统向分布式/微服务架构演进中的关键问题:
- 服务注册与发现
- 分布式协调
- 高可用与容错机制
- 服务调用与治理
👉 一句话总结:
从“单机应用”进阶到“分布式微服务架构”的核心入门课程。
二、适合人群
- 有Java基础的后端开发工程师
- 想学习微服务架构的人
- 准备进阶中高级后端岗位的人
- 想理解分布式系统原理的开发者
三、ZooKeeper核心内容
1. ZooKeeper是什么
Apache ZooKeeper 是一个分布式协调服务框架,用于解决分布式系统中的一致性问题。
2. 核心功能
✔ 服务注册与发现
- 服务节点动态注册
- 客户端自动发现服务
✔ 分布式锁
- 多节点互斥访问资源
- 防止并发冲突
✔ 配置管理
- 集中式配置存储
- 动态更新配置
✔ Leader选举
- 主节点选举机制
- 保证集群高可用
四、Dubbo核心内容
1. Dubbo是什么
Apache Dubbo 是一个高性能RPC(远程服务调用)框架,用于构建分布式服务系统。
2. 核心功能
✔ RPC远程调用
- 本地调用方式调用远程服务
- 屏蔽网络通信复杂性
✔ 服务注册与发现
- 依赖ZooKeeper作为注册中心
- 自动管理服务节点
✔ 负载均衡
- 轮询(Round Robin)
- 随机策略
- 权重策略
✔ 容错机制
- 失败重试
- 快速失败
- 降级处理
五、分布式架构核心流程
服务提供者 → 注册到ZooKeeper → 注册中心
消费者 → 从ZooKeeper获取服务列表
→ 通过Dubbo进行RPC调用
六、核心技术栈
课程通常基于以下技术体系:
- Java(核心开发语言)
- Spring Boot(服务开发框架)
- Apache Dubbo(服务调用)
- Apache ZooKeeper(注册中心)
- Redis(缓存/分布式支持)
- MySQL(数据存储)
七、微服务架构思想
课程核心思想是微服务拆分:
单体架构 → 微服务架构
| 单体应用 | 微服务 |
|---|---|
| 一个系统 | 多个服务 |
| 统一部署 | 独立部署 |
| 耦合高 | 松耦合 |
服务拆分示例
- 用户服务
- 商品服务
- 订单服务
- 支付服务
八、关键技术点解析
1. 服务注册与发现
- 服务启动自动注册到ZooKeeper
- 消费者动态获取服务地址
2. 负载均衡机制
- 多个服务实例自动分流请求
- 提升系统吞吐能力
3. 容错与降级
- 服务不可用自动切换
- 保证系统稳定性
4. 分布式一致性问题
- 数据一致性挑战
- CAP理论理解
九、实战内容(典型项目)
课程通常会实现一个微服务电商系统:
- 用户服务(User Service)
- 商品服务(Product Service)
- 订单服务(Order Service)
- 支付服务(Payment Service)
并实现:
- Dubbo远程调用
- ZooKeeper注册中心
- 服务负载均衡
- 分布式服务治理
十、学习收获
完成课程后你可以:
- 理解分布式系统核心原理
- 掌握ZooKeeper协调机制
- 熟练使用Dubbo进行服务调用
- 具备微服务架构基础能力
十一、课程价值
- ✔ 企业级微服务架构基础能力
- ✔ 大厂后端高频技术栈
- ✔ 面试高频分布式问题来源
- ✔ 可用于真实项目拆分设计
十二、总结
“ZooKeeper分布式专题与Dubbo微服务入门”本质是:
👉 一套从“单体应用”到“分布式微服务架构”的入门实战课程
它解决的是:
- 系统怎么拆分
- 服务怎么通信
- 如何保证高可用
- 如何做服务治理
课程截图:

课程目录:
第1章 分布式系统概念与ZooKeeper简介
1-1 zookeeper简介 (04:43)
1-2 什么是分布式系统 (06:22)
1-3 分布式系统的瓶颈以及zk的相关特性 (04:36)
第2章 ZooKeeper安装
2-1 JDK的安装 (05:44)
2-2 zookeeper下载、安装以及配置环境变量 (05:11)
2-3 zookeeper文件夹主要目录介绍 (06:59)
2-4 zookeeper配置文件介绍,运行zk (07:10)
第3章 ZooKeeper基本数据模型
3-1 zk数据模型介绍 (05:51)
3-2 zk客户端连接关闭服务端,查看znode (03:45)
3-3 zookeeper的作用体现 (06:27)
第4章 ZK基本特性与基于Linux的ZK客户端命令行学习
4-1 zookeeper常用命令行操作 (05:38)
4-2 session的基本原理与create命令的使用 (07:41)
4-3 set与delete命令的使用_(有一处打点 内容不确定) (05:26)
4-4 zk特性 – 理解watcher机制 (03:57)
4-5 父节点watcher事件 (06:29)
4-6 子节点watcher事件 (05:26)
4-7 watcher常用使用场景 (03:32)
4-8 权限acl详解,acl的构成-scheme与id (08:47)
4-9 acl的构成-permissions (02:28)
4-10 acl命令行world讲解 (06:21)
4-11 acl命令行auth讲解 (04:27)
4-12 acl命令行digest讲解 (04:17)
4-13 acl命令行ip讲解 (02:23)
4-14 acl之super超级管理员 (06:21)
4-15 acl的常用使用场景 (02:48)
4-16 zk四字命令 上 (07:50)
4-17 zk四字命令 下 (07:25)
4-18 你觉得acl权限是否完全利用并在自己服务器上使用?
第5章 选举模式和ZooKeeper的集群安装
5-1 集群的一些基本概念 (03:49)
5-2 单机伪分布式安装zookeeper集群 (11:18)
5-3 三台物理机(虚拟机)安装zookeeper集群 (10:59)
5-4 测试集群角色以及选举 (04:32)
5-5 集群扩展
5-6 zookeeper能不能使用双数台节点作为集群?
第6章 使用ZooKeeper原生Java API进行客户端开发
6-1 建立客户端与zk服务端的连接 (11:03)
6-2 zk会话重连机制 (05:33)
6-3 同步异步创建zk节点 (09:34)
6-4 修改zk节点数据 (03:50)
6-5 同步异步删除zk节点 (05:23)
6-6 CountDownLatch的介绍 (05:18)
6-7 CountDownLatch代码示例 (09:40)
6-8 获取zk节点数据 (10:31)
6-9 获取zk子节点列表 (10:05)
6-10 判断zk节点是否存在 (06:04)
6-11 acl – 默认匿名权限 (04:10)
6-12 acl -自定义用户权限 (11:19)
6-13 acl – ip权限 (07:08)
第7章 Apache Curator客户端的使用
7-1 curator简介与客户端之间的异同点 (05:14)
7-2 搭建maven工程,建立curator与zkserver的连接 (14:11)
7-3 zk命名空间以及创建节点 (06:34)
7-4 修改节点以及删除节点 (11:06)
7-5 查询节点相关信息 (08:20)
7-6 curator之usingWatcher (04:58)
7-7 curator之nodeCache一次注册N次监听 (11:50)
7-8 curator之PathChildrenCache子节点监听 (14:53)
7-9 zk-watcher实例 统一更新N台节点的配置文件 (17:40)
7-10 curator之acl权限操作与认证授权 (12:39)
第8章 Dubbo入门到重构服务
8-1 架构演变过程 (11:43)
8-2 dubbo 入门简介 (07:42)
8-3 单体到分层模式代码演示 (24:54)
8-4 重构商品服务,抽取抽象工程 (07:47)
8-5 暴露商品服务 (24:36)
8-6 使用tomcat启动dubbo服务 (05:00)
8-7 使用main主线程启动dubbo服务 (04:11)
8-8 使用dubbo内置main打包jar启动 (07:48)
8-9 重构并且暴露订单服务 (10:35)
8-10 开发dubbo消费者服务调用方 (15:33)
8-11 测试dubbo消费者调用商品服务和订单服务 (03:01)
8-12 安装启动dubbo监控服务 (19:33)
8-13 测试dubbo监控服务的统计数据以及图表 (04:18)
8-14 如何升级dubbo到最新版本 (11:45)
第9章 分布式锁
9-1 死锁与活锁的概念 (04:26)
9-2 分布式锁的概念与数据最终不一致性的场景 (06:32)
9-3 curator与spring的整合 (10:33)
9-4 获取分布式锁的流程 (05:06)
9-5 开发分布式锁 (19:50)
9-6 谈谈你对dubbo的看法?或者说在企业中的应用于推广
9-7 zookeeper作为注册中心
第10章 课程总结
10-1 课程总结 (03:20)
10-2 一致性hash算法 (09:06)
资料和源码
