首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是ZooKeeper以及zookeeper是如何工作的?

什么是ZooKeeper以及zookeeper是如何工作的?
EN

Stack Overflow用户
提问于 2014-01-16 04:31:33
回答 2查看 1.2K关注 0票数 0

我现在正在读Apache ZooKeeper。我在互联网上看了很多文档和文章,但我越来越困惑于ZooKeeper到底是如何工作的?

目前,我知道ZooKeeper为跨节点同步提供了一个基础设施,应用程序可以使用它来确保跨集群的任务是序列化或同步的。它维护了一种由“znode”组成的树型文件系统。例如,我有一个集群,它是一个主服务器和两个从服务器,并且在所有服务器中,这种树文件系统结构总是相同的?如果我在其中一个追随者服务器上创建一个新的znode,整个集群会被同步吗?

另一个问题是,每个znode只能包含1M数据,因为ZooKeeper不是设计为容纳非常大的数据值的大型数据存储。但是,如果我需要一种存储大量数据的分布式数据库,我如何使用ZooKeeper来实现呢?如果这些大型数据没有存储在znode中,那么它应该存储在哪里,ZooKeeper如何获取这些数据?

EN

回答 2

Stack Overflow用户

发布于 2014-01-16 04:38:49

但是,如果我需要一种存储大量数据的分布式数据库,我如何使用ZooKeeper来实现呢?不要这样做。搅拌机不是汽车;Zookeeper也不是大型数据存储。

Zookeeper基本上是一个lock server,并不意味着要存储大量数据。相反,它通过公开同步工具来帮助其他大型数据存储(如HBase)实现consistency

作为最终用户(只想使用分布式数据库的人),zookeeper并不是很有趣。它的目标受众是服务/数据存储作者,他们编写了最终用户可能想要的东西。

票数 1
EN

Stack Overflow用户

发布于 2014-02-20 02:17:44

ZooKeeper集成必须与多数(包括主节点)保持一致:您无法保证集成的特定节点与主节点保持最新。要获得这种保证,您必须通过该节点实际编写一些内容:然后该节点将被更新,随后它将发布其更新。这是因为写入是线性的,即为了一致性,写入是严格排序的。

出于上述原因,我不会将ZooKeeper用于大型存储:每次存储内容时,都会强制大多数节点进行更新。频繁的写入传播显然与您想要的分布式字符背道而驰。坚持使用ZooKeeper进行客户端之间的协调,并利用这种协调来执行对实际的分布式/分片数据库的写入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21147574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档