首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式系统何时需要ZooKeeper

分布式系统何时需要ZooKeeper
EN

Stack Overflow用户
提问于 2015-04-16 04:31:18
回答 3查看 1.7K关注 0票数 1

为什么像Solr或Kafka这样的分布式系统需要ZooKeeper,而像Cassandra这样的分布式系统不需要呢?

EN

回答 3

Stack Overflow用户

发布于 2015-04-16 10:30:25

ZooKeeper为关键系统状态提供了高度一致的存储。许多系统,例如Storm和Kafka,都依赖ZooKeeper来进行服务发现和领导者选举。因为ZooKeeper的ZAB协议属于CAP定理的CP端,所以它可以保证两个客户端不会看到同一系统的不同视图。因此,例如,Kafka不会错误地认为节点A和节点C都是同一分区的领导者。

这些系统简单地使用ZooKeeper,因为它是一种经过充分测试和验证的技术,用于存储这种类型的关键元数据。ZooKeeper充当协调的中心点。然而,Cassandra具有更分散的体系结构,并实现了自己的共识算法(Paxos),而不是依赖于像ZooKeeper这样的外部CP存储。根据Cassandra如何使用其八卦和共识协议,它可能会简单地做出一些让步,而像Kafka和Solr这样的系统则不会。这允许Cassandra不依赖于像ZooKeeper这样的外部系统,这些系统通常可以容忍比HA系统更少的故障。

票数 4
EN

Stack Overflow用户

发布于 2015-04-16 14:37:16

需要Zookeeper的系统依赖于它来进行集群协调。Cassandra架构是不同的,因为它是点对点系统。因此,协调被“分布”在每个节点之间。

票数 1
EN

Stack Overflow用户

发布于 2015-04-16 09:02:56

Kafka中的主题的消费者在ZooKeeper中注册自己,以便相互协调,平衡数据消耗。消费者还可以通过设置offsets.storage=zookeeper将其偏移量存储在ZooKeeper中。

Zookeeper嵌入并使用Zookeeper作为集群配置和协调的存储库-将其视为包含所有服务器信息的分布式文件系统。

除此之外,zookeeper还用于许多其他系统,如Hadoop Highavailabilty,HBase。

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

https://stackoverflow.com/questions/29660295

复制
相关文章

相似问题

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