ZooKeeper 很流行,有个基本的疑问:
- ZooKeeper 是用来做什么的?
- 之前没有ZK,为什么会诞生 ZK?
OK,解答一下上面的疑问:(下面是凭直觉说的)
- ZooKeeper 是用于简化分布式应用开发的,对开发者屏蔽一些分布式应用开发过程中的底层细节
- ZooKeeper 对外暴露简单的 API,用于支持分布式应用开发
- ZooKeeper 在提供上述功能的同时,其还是一个 高性能、高可用、高可靠的分布式集群
上面说这么多,总结一下,ZK 能解决分布式应用开发的问题,ZK 能很好的解决问题。到这一步,疑问就更多了:
- 分布式应用开发,有哪些常见问题?ZK 是如何屏蔽这些底层细节的?
- ZooKeeper 对外暴露了那些 API?这些 API 如何支持分布式应用开发的?这些 API 还能简化吗?API 的语义性怎么样?
- ZooKeeper 自身是一个高性能、高可用、高可靠的分布式集群,那有个简单的问题:
- 高性能是指什么?ZooKeeper 为了达到高性能,做了哪些工作?
- 高可用同上
- 高可靠同上
Note:本篇 wiki 就是为了解决上述第一个疑问的。(其他疑问会在其他 blog 中逐步解答)
为什么有 ZooKeeper
一个应用程序,涉及多个进程协作时,业务逻辑代码中混杂有大量复杂的进程协作逻辑。

上述多进程协作逻辑,有 2 个特点:
- 处理复杂
- 处理逻辑可重用

ZooKeeper作为一个高性能、高可用、高可靠的分布式协调服务,旨在简化分布式应用开发中的多进程协作问题。它提供了命名服务、分布式锁、进程崩溃检测、Leader选举和配置管理等基础服务。ZooKeeper通过简单的API,对外屏蔽了分布式应用开发的底层复杂性,确保数据的顺序一致性、原子性和最终一致性。尽管不直接用于海量数据存储,但在解决分布式一致性问题上,如2PC、Paxos算法,ZK扮演了关键角色。
最低0.47元/天 解锁文章
508

被折叠的 条评论
为什么被折叠?



