Apache zookeeper 什么是ZooKeeper?ZooKeeper是如何工作的?

Apache zookeeper 什么是ZooKeeper?ZooKeeper是如何工作的?,apache-zookeeper,Apache Zookeeper,我现在正在读《阿帕奇动物园管理员》。我在网上查阅了很多文件和文章,但我越来越困惑ZooKeeper到底是如何工作的 目前,我知道ZooKeeper提供了一个跨节点同步的基础设施,应用程序可以使用它来确保集群中的任务被序列化或同步。它维护一种由“znodes”组成的树文件系统。例如,我有一个集群,它是一个主集群和两个从集群,在所有服务器中,这个树文件系统结构总是相同的?如果我在一个follower服务器中创建一个新的znode,那么整个集群将同步到这个变化 另一个问题是,每个znode只能包含1M

我现在正在读《阿帕奇动物园管理员》。我在网上查阅了很多文件和文章,但我越来越困惑ZooKeeper到底是如何工作的

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

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

“但是如果我需要一种分布式数据库来存储大数据,我怎么能用ZooKeeper来实现呢?”不要。搅拌机不是汽车;Zookeeper不是一个大型数据存储

Zookeeper基本上是一个应用程序,不用于存储大型数据。相反,它通过公开同步工具帮助其他大型数据存储(如HBase)实现


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

ZooKeeper集成必须与大多数一致(包括主节点):您不能保证集成的特定节点与主节点是最新的。要保证这一点,您必须通过该节点实际编写一些内容:然后该节点将被更新,随后它将发布其更新。这是因为写操作是线性的,也就是说,写操作的顺序是严格一致的


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

您能帮我理解这个主题吗?请