ZooKeeper分布式协调服务概述
分布式系统需要协调服务解决一致性问题。
分布式协调服务概念
为什么需要协调服务:
分布式系统面临的核心问题:
| 问题 | 说明 |
|---|---|
| 配置管理 | 多节点配置同步 |
| 服务发现 | 服务地址动态变化 |
| 分布式锁 | 资源竞争控制 |
| 集群选举 | Leader节点选择 |
协调服务的角色:
text
协调服务(中心化)
↓
提供一致的决策依据
↓
各分布式节点依据决策协调行为
典型应用场景:
| 场景 | 说明 |
|---|---|
| 配置中心 | 统一管理集群配置 |
| 服务注册发现 | 微服务地址管理 |
| 分布式锁 | 多节点资源竞争 |
| 集群选举 | Leader/Master选举 |
| 分布式屏障 | 任务同步等待 |
提示:协调服务是分布式系统的"大脑",提供决策依据。
ZooKeeper设计目标
核心设计原则:
| 目标 | 说明 |
|---|---|
| 简单性 | 类文件系统的数据模型 |
| 可靠性 | 单点故障不影响服务 |
| 高性能 | 读请求高吞吐 |
| 顺序性 | 全局事务顺序 |
简单性设计:
- 层级命名空间,类似文件系统
- 节点可存储数据,可监听变化
- API简洁,易于理解和使用
可靠性保证:
text
集群模式部署
过半节点存活即可服务
Leader故障自动选举恢复
高性能实现:
- 读请求可在任意节点处理
- 写请求Leader处理、Follower同步
- 读多写少场景性能优异
顺序性约束:
- 所有写请求全局有序
- ZXID保证事务顺序
- 客户端按序看到更新
注意:ZooKeeper适合读多写少场景,写性能有限。
要点总结
- 分布式系统需要协调服务解决一致性问题
- ZooKeeper设计追求简单、可靠、高性能、顺序性
- 典型场景:配置中心、服务发现、分布式锁、集群选举
- 层级命名空间模型简单易懂
- 读多写少场景性能最优
📝 发现内容有误?点击此处直接编辑