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