2021 年 3 月更新:借助 Kafka 的新 KRaft 模式,该模式将 ZooKeeper 从 Kafka 架构中完全移除,Kafka 集群可以处理数百万个主题/分区. See https://www.confluence.io/blog/kafka-without-zookeeper-a-sneak-peek/ https://www.confluent.io/blog/kafka-without-zookeeper-a-sneak-peek/了解详情。
*“Kafka Raft 元数据模式”的缩写;从 Kafka v2.8 开始处于抢先体验阶段,现已全面上市,并考虑量产。 Kafka 4.0 计划完全删除用于启动 Kafka 的 Zookeeper 选项。
2018 年 9 月更新:从 Kafka v2.0 开始,Kafka 集群可以具有数十万的主题。看https://blogs.apache.org/kafka/entry/apache-kafka-supports-more-partitions https://blogs.apache.org/kafka/entry/apache-kafka-supports-more-partitions.
以下为后代的初步答案:
经验法则是Kafka 主题的数量可以达到数千个 http://grokbase.com/t/kafka/users/133v60ng6v/limit-on-number-of-kafka-topic.
Jun Rao(Kafka 提交者;现在在汇合 http://www.confluent.io/但他之前是 LinkedIn 的 Kafka 团队)写道:
在 LinkedIn,我们最大的集群拥有超过 2K 个主题。 5K主题应该
没事的。
[...]
对于更多主题,您可能会遇到以下限制之一:(1) 允许的目录数
FS; (2) 打开文件处理程序(我们在代理中保持所有日志段打开);
(3)ZK节点。
The 卡夫卡常见问题解答 https://cwiki.apache.org/confluence/display/KAFKA/FAQ#FAQ-HowmanytopicscanIhave?给出以下抽象指南:
Kafka 常见问题解答:我可以有多少个主题?
与许多消息系统不同,Kafka 主题可以任意扩展。因此,我们鼓励较少的大主题而不是许多小主题。例如,如果我们要存储用户的通知,我们会鼓励设计一个按用户 ID 划分的单个通知主题,而不是每个用户一个单独的主题。
实际的可扩展性在很大程度上取决于所有主题的总分区数量,而不是主题本身的数量(有关详细信息,请参阅下面的问题)。
文章http://www.confluence.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/ http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/(由上述 Jun Rao 撰写)添加了更多细节,特别关注分区数量的影响。
恕我直言,您的用例/模型对于单个 Kafka 集群来说有点延伸,但对于一般的 Kafka 来说不一定如此。根据您分享的少量信息(我知道公共论坛不是进行敏感讨论的最佳场所:-P),我可以为您提供的唯一即兴评论是考虑使用多个 Kafka 集群,因为您提到过无论如何,客户数据必须非常隔离(包括处理步骤)。
我希望这个能有一点帮助!