2015-10-05 94 views
0

我有一个数据流量使用情况下,我想定义基于每个客户的资料库(这可能是100,000s的顺序),每个数据流将与分区的主题(在少数人才能拥有的话题10s)定义了流程的不同阶段。我可以在Kafka Cluser中拥有数千个主题吗?

是卡夫卡好这样的情况?如果不是,我将如何重塑我的用例来处理这种情况。此外,即使在处理过程中,每个客户存储库数据也不能与其他人混杂在一起。

回答

2

经验法则是,the number of Kafka topics can be in the thousands

饶俊(卡夫卡的提交;现在Confluent但他以前在LinkedIn的卡夫卡队)写道:

在LinkedIn,我们最大的集群已超过2K的话题。 5K话题应该 罚款。 [...]

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

Kafka FAQ给出了以下的抽象方针:

卡夫卡常见问题:我有多少话题可以有?

不像许多消息系统卡夫卡主题意在任意扩展。因此,我们鼓励减少大型主题而不是许多小型主题。因此,举例来说,如果我们为用户存储通知,我们会鼓励使用由用户标识分区的单个通知主题的设计,而不是每个用户的单独主题。

实际的可扩展性是由总分区的所有话题不课题本身的数量多少决定的大部分(详见下文的问题)。

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

恕我直言,你的用例/模型是有点单个卡夫卡集群舒展的,虽然不一定对卡夫卡一般。在您分享的信息很少的情况下(我了解公众论坛不是敏感讨论的最佳场所:-P)我可以为您提供的唯一非正式评论是考虑使用多个Kafka集群,因为您提到过客户数据必须非常分离(包括处理步骤)。

我希望这会有所帮助!

+0

谢谢@miguno。我会采用多个Kafka集群的建议。我的后续问题将会是。一旦我达到说2000年不变的话题,产生新的卡夫卡集群是否是一个好主意?使用类似Mesos来托管Kafka集群? –

+1

我认为是的,开始考虑如何轻松管理多个Kafka集群是一个不错的主意 - 不仅涉及部署(产卵),还涉及监控(例如,确定产生新簇的实际时间感觉在你的情况)。 –

相关问题