繁体   English   中英

我可以在 Kafka 集群中拥有成百上千个主题吗?

[英]Can I have 100s of thousands of topics in a Kafka Cluster?

我有一个数据流用例,我想根据每个客户存储库定义主题(可能是 100,000 个)每个数据流将是一个带有分区的主题(大约 10 个)定义流程的不同阶段。

Kafka 适合这样的场景吗? 如果不是,我将如何改造我的用例来处理这些场景。 此外,即使在处理过程中,每个客户存储库数据也不能与其他存储库数据混合。

2021 年 3 月更新:借助 Kafka 新的 KRaft 模式,它从 Kafka 的架构中完全删除了 ZooKeeper,一个 Kafka 集群可以处理数百万个主题/分区 有关详细信息,请参阅https://www.confluent.io/blog/kafka-without-zookeeper-a-sneak-peek/

* “Kafka Raft 元数据模式”的缩写; 从 Kafka v2.8 开始抢先体验


2018 年 9 月更新:从 Kafka v2.0 开始,Kafka 集群可以拥有数十万个主题。 请参阅https://blogs.apache.org/kafka/entry/apache-kafka-supports-more-partitions


以下为后代的初步答案:

经验法则是Kafka 主题的数量可以达到数千个

Jun Rao(Kafka 提交者;现在在Confluent,但他以前在 LinkedIn 的 Kafka 团队工作)写道:

在 LinkedIn,我们最大的集群拥有超过 2000 个主题。 5K 主题应该没问题。 [...]

对于更多主题,您可能会遇到以下限制之一: (1) # FS 中允许使用的目录; (2) 打开文件处理程序(我们在代理中保持所有日志段打开); (3) ZK 节点。

Kafka FAQ给出了以下抽象指南:

Kafka FAQ:我可以拥有多少个主题?

与许多消息传递系统不同,Kafka 主题旨在任意扩展。 因此,我们鼓励较少的大主题而不是许多小主题。 因此,例如,如果我们为用户存储通知,我们会鼓励设计具有按用户 ID 分区的单个通知主题,而不是每个用户单独的主题。

实际的可扩展性在很大程度上取决于所有主题的总分区数,而不是主题本身的数量(有关详细信息,请参阅下面的问题)。

文章http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/ (由上述 Jun Rao 撰写)补充了更多细节,特别是侧重于分区数量的影响。

恕我直言,您的用例/模型对于单个 Kafka 集群来说有点牵强,尽管一般来说不一定适用于 Kafka。 由于您分享的信息很少(我知道公共论坛不是进行敏感讨论的最佳场所:-P),我可以为您提供的唯一即兴评论是考虑使用多个 Kafka 集群,因为您提到了无论如何,客户数据必须非常隔离(包括处理步骤)。

我希望这个能有一点帮助!

考虑到 Kafka 是网络中的一个引人注目的选择,但它的设计目的不是为了在最后一英里有效和高效地(但很快)通过拥挤和不可靠的网络移动和卫星网络将数据分发给数十万消费者。 插入或使用实时 API 管理平台允许相同的数据聚合,但也是专门构建的,以最大限度地提高企业网络外的高效、选择性和高度可扩展的数据分布。 实时 api 管理解决方案可应对这些网络的挑战,并轻松管理所需的数十万个离散主题,无需添加大量基础设施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM