完美的解决方案是不可能的,我们再次重申Zookeeper不会解决分布式应用开发者将面临的所有的问题。然而,它确实为开发者提供了一个处理这些问题不错的框架。Zookeeper是建立在多年的分布式计算的研究工作之上的。Paxos和Virtual Synchrony对Zookeeper的设计有很大的影响的。当出现变化和状况时,它能无缝应对,同时提供给开发者一个框架用于应对那些无法被自动处理的状况。

    Zookeeper最初在Yahoo被开发出来,被应用于大量的大型分布式应用中。我们注意到某些应用的分布式协同方面没有合适地处理,以至于系统部署后会单点失败或者十分的脆弱。另一方面,其他的开发者在分布式协同上花费了大量的时间以至于他们没有足够的资源来聚焦在应用的功能上。我们发现这些应用都有一些通用的基础的协同需求,所以我们打算设计一个通用的解决方案,它包含一些关键的要素使得我们可以只实现一次但是可以被很多不同的应用所使用。事实证明,Zookeeper比我们当初所想的还要更加通用和流行。

    这些年来我们发现人们能简单地部署一个Zookeeper集群并使用它开发应用。但是真的如此简单吗?事实上,某些开发者并没有完全的理解在一些场景中需要开发者自己作出决定而不是Zookeeper。写作本书的其中一个目的就是让开发者理解他们需要做些什么来高效地使用Zookeeper以及为什么要这么做。