首页 文章

什么是ZooKeeper以及zookeeper的工作原理? [关闭]

提问于
浏览
1

我正在阅读Apache ZooKeeper . 我在互联网上看了很多文档和文章,但是我对ZooKeeper的工作方式越来越困惑了?

目前,我知道ZooKeeper提供了跨节点同步的基础架构,应用程序可以使用它来确保群集中的任务被序列化或同步 . 它维护着一种由“znodes”组成的树文件系统 . 例如,我有一个集群,它是一个主节点和两个粉丝,在所有服务器中,这个树文件系统结构总是相同的?如果我在一个跟随服务器中创建一个新的znode,整个集群将同步这个变化?

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

2 回答

  • 1

    “但是,如果我需要一种能够存储大数据的分布式数据库,我该如何使用ZooKeeper来实现它呢?”别 . 搅拌机不是汽车; Zookeeper不是一个大型数据存储 .

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

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

  • 0

    ZooKeeper集合必须与大多数(包括主节点)保持一致:您无法保证集合的特定节点与主节点保持同步 . 为了保证您必须通过该节点实际写入内容:然后将更新节点,之后它将发布更新 . 这是因为写入是线性的,即为了一致性严格地对写入进行排序 .

    我不会将ZooKeeper用于大型存储,原因如上:每次存储时,都会强制大多数节点更新 . 写入的频繁传播显然违背了您所希望的分布式角色 . 坚持使用ZooKeeper进行客户端之间的协调,并利用这种协调来执行对实际分布式/分片数据库的写入 .

相关问题