我有一个数据流用例,我希望根据每个客户存储库(可能大约100,000个)定义主题.每个数据流都是一个带有分区的主题(大约几十个)定义流程的不同阶段.
卡夫卡是否适合这样的场景?如果不是,我将如何改造我的用例来处理这种情况.此外,即使在处理过程中,每个客户存储库数据也不能与其他客户存储库数据混合.
Mic*_*oll 12
更新于2018年9月:今天,从Kafka v2.0开始,Kafka集群可以拥有数十万个主题.
经验法则是卡夫卡主题的数量可以达到数千个.
Jun Rao(Kafka提交者;现在在Confluent但他以前在LinkedIn的Kafka团队)写道:
在LinkedIn,我们最大的集群有超过2K的主题.5K主题应该没问题.[...]
通过更多主题,您可以达到以下限制之一:(1)FS中允许的#dirs; (2)打开文件处理程序(我们在代理中保持所有日志段都打开); (3)ZK节点.
在卡夫卡常见问题给出了以下的抽象方针:
卡夫卡常见问题:我可以拥有多少主题?
与许多消息传递系统不同,Kafka主题旨在任意扩展.因此,我们鼓励减少大型主题而不是许多小主题.因此,例如,如果我们为用户存储通知,我们将鼓励设计使用按用户ID分区的单个通知主题,而不是每个用户单独的主题.
实际的可伸缩性在很大程度上取决于所有主题的总分区数,而不是主题本身的数量(详见下面的问题).
文章http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/(由上述Jun Rao撰写)增加了更多细节,特别是重点关注分区数量的影响.
恕我直言,你的用例/模型对于单个Kafka集群来说有点延伸,但对于Kafka来说并不一定.您分享的信息很少(我知道公共论坛不是敏感讨论的最佳场所:-P)我能为您提供的唯一不合时宜的评论是考虑使用多个Kafka集群,因为您提到过客户数据必须非常孤立(包括处理步骤).
我希望这能有所帮助!
| 归档时间: |
|
| 查看次数: |
6360 次 |
| 最近记录: |