ZooKeeper 的应用场景
典型的发布/订阅模式的分布式数据管理与协调框架
ZooKeeper 解决了什么问题?
- 高性能使得 ZooKeeper 能够应用于对系统吞吐有明确要求的大型分布式系统
- 高可用可以解决分布式的单点问题
- 具有严格的顺序访问控制能力,主要是针对写操作的严格顺序性,使得客户端可以基于 ZooKeeper 来实现一些复杂的同步原语
利用 ZooKeeper 可以非常方便构建一系列分布式应用中都会涉及到的核心功能。
- 数据发布/订阅
- 负载均衡
- 命名服务
- 分布式协调/通知
- 集群管理
- Master 选举
- 分布式锁
- 分布式队列
ZooKeeper 在大型分布式系统的应用:
Hadoop 利用 ZooKeeper 实现了高可用的功能,包括 HDFS 的 NameNode 和 YARN 的 ResourceManager。此外 YARN 的运行状态是利用 ZooKeeper 来存储的
Kafka 中大部分组件都应用了 ZooKeeper
Dubbo 基于 ZooKeeper 实现了服务注册中心