Zookeeper 和托管复制数据库服务之间的区别

Kum*_*nal 8 distributed-system amazon-web-services amazon-dynamodb apache-zookeeper

我刚刚遇到 Zookeeper,想知道 Zookeeper 与可用的、一致的、持久的、分布式的、复制的数据库服务(如 AWS DynamoDB 甚至 AWS S3(存储服务))之间有什么区别。配置管理、分布式同步等关键功能可以通过 AWS DynamoDB 等数据库产品很好地实现。我知道 Zookeeper 和 DynamoDB 等产品之间存在架构差异。但是,从功能的角度来看,两者之间有什么主要区别吗?是否有任何理由使用 Zookeeper 而不是其他。

Abh*_*nav 1

首先让我告诉你一些你可能已经知道的有关 Zookeeper 的基础知识:

  • Zookeeper不是数据库
  • Zookeeper是一个协调服务
  • Zookeeper具有高可用性,能够管理集群中4000多个节点。
  • Zookeeper 将其所有信息存储在 znode 中,每个 Znode 最大可以为 1 mb。
  • Zookeeper提供3种类型的znode:临时的、顺序的和持久的

现在,回答您的问题:

Zookeeper 用于为存在主从架构的服务提供独占锁,并且您希望只有一个服务处于活动状态并执行所有读/写操作。

Zookeeper 也可用于会话。就像每个用户的会话都会生成一个临时节点一样,当用户注销时,该节点将自动从 Zookeeper 内存中删除。

Zookeeper 可靠且具有容错能力,并且执行内存中操作,这使其速度更快。

因此,这就是 Zookeeper 被认为高于任何其他提供协调的服务的主要原因。