首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kafka代替Zookeeper进行集群管理

Kafka代替Zookeeper进行集群管理
EN

Stack Overflow用户
提问于 2016-03-08 22:18:13
回答 2查看 1.1K关注 0票数 2

我正在编写一个基于Kafka的集群应用程序--它专门使用Kafka进行进程间通信和协调。我可以使用Zookeeper来管理我的集群--但是使用Kafka主题来管理集群并不是很困难。我想得越多,除了出于历史原因,卡夫卡似乎可以放弃Zookeeper,只使用基于主题的解决方案

例如,在Kafka中可能会有一个或多个特殊主题,您可以在其中发布当前在Zookeeper中跟踪的所有相同数据。Broker、Topics、Partitions、Leaders等--似乎可以通过Kafka主题像通过Zookeeper一样轻松地跟踪这些内容。

我知道在Kafka 0.9.0中有一些远离Zookeeper的动向,更多的是朝着这个模式发展,记住我的问题不是关于Kafka开发,而是更多的是我试图弄清楚我的应用程序的发展方向。

我不是在征求意见--我想知道的是,Zookeeper提供的任何特定功能对于Kafka/基于主题的协调方法来说都是困难的。但我什么也想不出来。

甚至心跳监视--这也是我最初开始研究Zookeeper的原因--您可以有一个客户端连接主题,客户端可以在加入集群时发布它,在给定的时间间隔发布心跳,并在离开集群时发布。

EN

回答 2

Stack Overflow用户

发布于 2016-03-09 01:58:35

让我们从一个着眼于太空的观点开始:你有两个存储数据的分布式系统。Zookeeper以某种类似目录的结构在节点中组织它的数据。Kafka在主题中存储消息。

从鸟瞰的角度来看,kafka是为高吞吐量和可伸缩性而构建的,而动物园管理员的主要设计目标之一是一致性。Zookeeper是用于分布式应用的分布式协调服务,而Kafka可以被认为是分布式提交日志。

所以你的问题的答案是令人惊讶的:“视情况而定”。为了协调分布式系统,我会使用zookeeper:这就是构建它的目的。你也可以用kafka来做这件事,但是如果你使用的是zookeeper,有几件事情需要手动完成。

下面是一些例子:

  • Consistency: ZK-Client可以选择是否需要strong or a eventual consistency
  • 临时节点:与ZK-Watches一起,可以对失败的kafka一致性做出反应:不允许您按照写入代理的顺序接收kafka-
  • (只允许对某个部分中的消息进行排序)
  • ACL:从未使用过它,但至少有一些东西是kafka
  • Sequence Nodes

没有提供的

关于你可以用zookeeper做什么的一个很好的概述是zookeeper-食谱:https://zookeeper.apache.org/doc/trunk/recipes.html

编辑:使用kafka对应用程序进行检测当然是可能的。但在我看来,zookeeper中的临时节点是更容易的选择。

票数 3
EN

Stack Overflow用户

发布于 2021-07-21 21:57:21

这目前正在KIP-500的范围内工作。

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

https://stackoverflow.com/questions/35869786

复制
相关文章

相似问题

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