首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZooKeeper和Etcd有多好?

ZooKeeper和Etcd有多好?
EN

Stack Overflow用户
提问于 2016-04-17 02:29:04
回答 1查看 2.9K关注 0票数 4

免责声明:对于etcd项目和ZooKeeper项目,我是非常新的。

我最近对分布式开源产品很感兴趣。我发现它们似乎需要配置(协调?)ZooKeeper for Presto DB、Hive和Etcd等系统用于kubernetes,我认为理解etcd和ZooKeeper的作用是理解分布式系统的第一步。

但现在我想迷路了..。我还不明白etcd和ZooKeeper的优点和独特之处是什么。他们为我寻找一个分布良好的密钥值存储或文件系统。这是我对产品的印象。我知道这些印象并不能反映产品的特点。但我不知道还有什么是我应该知道的。

ZooKeeper:根据ZooKeeper的概述页面,它保证了以下内容。

  • 顺序一致性-来自客户端的更新将按照发送的顺序进行应用。
  • 原子性-更新要么成功要么失败。没有部分结果。
  • 单系统映像-客户端将看到服务的相同视图,而不管它连接到哪个服务器。
  • 可靠性--一旦应用了更新,它将从那时起一直保持到客户端覆盖更新为止。
  • 及时性-客户对系统的看法保证在一定的时间范围内是最新的.

顺序一致性和原子性是大多数文件系统不支持的独特特性,但在其他文件系统中是常见的。

根据etcd的自述。它的重点是

  • 简单:curl可面向用户的API (HTTP+JSON)
  • 安全:可选的SSL客户端证书身份验证
  • Fast:基准标有每个实例1000 s的写操作/s
  • 可靠:合理分配使用筏

其中大多数在亚马逊S3中似乎很常见(S3不支持如此快速的访问)。

我知道这些产品是非常好的,因为大多数分布式开源产品都依赖它们。但是,分布式开源产品选择它们的关键、独特的特性是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-17 08:40:34

我想你把类似文件系统的界面和实际的文件系统搞混了。您提到的系统非常适合集群协调,特别是ZooKeeper。它们的目的不是像文件系统那样存储大量的数据。您应该认为它们更适合于协调文件系统。也就是说,可以想象一个文件系统将文件路径存储在一致的存储区中,比如ZooKeeper或etcd,而不是文件本身。它们公开类似文件系统的接口与存储文件的能力无关。实际上,这些系统的设计是为了存储少量可以保存在内存中的数据。通过使用像ZooKeeper这样的一致存储在分布式文件系统中存储文件信息,文件系统将确保客户端按顺序看到文件系统中的更改。

ZooKeeper实际上是一组原语,可以与分布式系统进行协调。与ZooKeeper协调分布式系统特别相关的是它的会话事件( which ),它允许客户端侦听集群状态的更改。分布式系统通常在ZooKeeper中使用手表来处理锁之类的事情,而ZooKeeper强大的一致性保证使得它非常适合该用例。

如果您想很好地了解像ZooKeeper和etcd这样的系统是用来做什么的,那么您应该查看Apache策展人食谱原子还实现了类似类型的API,用于在协商一致算法的基础上协调分布式系统。所有这些工具都演示了基于共识的分布式系统的典型用例。

需要注意的是,这些类型的系统建立在协商一致的算法之上,并且通常将状态存储在内存中。它们适用于涉及少量数据但需要高度一致性的操作,这也是为什么它们经常用于分布式锁定、配置管理和组成员身份等操作。

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

https://stackoverflow.com/questions/36672059

复制
相关文章

相似问题

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