本节书摘来自华章计算机《ZooKeeper:分布式过程协同技术详解》一书中的第1章,第1.4节,作者:Flavio Junqueira, Benjamin Reed 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.4 ZooKeeper的成功和注意事项
不得不指出,完美的解决方案是不存在的,我们重申ZooKeeper无法解决分布式应用开发者面对的所有问题,而是为开发者提供了一个优雅的框架来处理这些问题。多年以来,ZooKeeper在分布式计算领域进行了大量的工作。Paxos算法注3和虚拟同步技术(virtual synchrony)注4给ZooKeeper的设计带来了很大影响,通过这些技术可以无缝地处理所发生的某些变化或情况,并提供给开发者一个框架,来应对无法自动处理的某些情况。
ZooKeeper最初由雅虎研究院开发,用于处理大量的大型分布式应用。我们注意到,这些应用在分布式协作方面的处理方式并不妥当,这些系统的部署存在单点故障问题或很脆弱,另一方面,开发者在分布式协作方面花费了大量的时间和精力,导致开发者没有足够的资源来关注应用本身的功能逻辑。我们还注意到,这些应用都在基本协作方面有相同的需求。因此,我们开始着手设计一套通用的解决方案,通过某些关键点让我们可以一次实现就能应用于大多数不同的应用中。ZooKeeper已经被证实更加通用,其受欢迎程度超越了我们的想象。
多年来,我们发现人们可以很容易地部署ZooKeeper集群,轻松通过这个集群开发应用,但实际上,在使用ZooKeeper时,有些情况ZooKeeper自身无法进行决策而是需要开发者自己做出决策,有些开发者并不完全了解这些。编写本书的其中一个目的就是让开发者了解如何更有效地使用ZooKeeper,以及为什么需要这样做。