ZooKeeper是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用所使用。每次实现这些服务时,都会有大量的工作要去修复不可避免的bug和竞赛条件。由于实现这类服务的困难,应用程序最初通常会吝啬它们,这使得它们在变化面前变得脆弱,难以管理。即使做得正确,这些服务的不同实现也会导致应用部署时的管理复杂性。
ZooKeeper的目标是将这些不同服务的精髓提炼成一个非常简单的接口,以实现集中式的协调服务。服务本身是分布式的,并且高度可靠。共识、群组管理和存在协议将由服务来实现,这样应用程序就不需要自己去实现它们。这些应用的具体用途将包括ZooKeeper的具体组件和应用的具体约定的混合物。ZooKeeperRecipes 展示了如何使用这个简单的服务来构建更强大的抽象。
官方表示,其为应用程序本身提供了与ZooKeeper的Java和C接口。多种客户端绑定可用于多种语言,包括Python,Ruby和Go。
评论