Kafka 主题数量限制

AMM*_*AMM 5 apache-kafka

我有一个特殊的用例,我可能需要 kafka 中的大量主题。本质上这是针对时间序列的,因此想大致了解我应该如何处理这个问题。

我知道理论上没有限制,但实际上会有一些限制。想在这里得到一些专家的意见。

例如,是否可以扩展到一百万个主题甚至更高?

Nis*_*yal 10

好吧,没有为集群上的主题/分区定义固定数字。但是肯定有一些最佳实践描述了如何以有效的方式扩展集群。

实际上主题的数量本身并不能决定集群的可扩展性。分区数影响更多而不是主题数。每个主题可以有一个或多个分区。您拥有的分区数量越多,打开的文件句柄就越多,这将影响延迟。此外,更多的分区会增加不可用性。

因此,当您进行集群大小和容量规划时,请遵循以下稳定集群的规则。

根据经验,如果您关心延迟,最好将每个代理的分区数量限制为 100 xbxr,其中 b 是 Kafka 集群中的代理数量,r 是复制因子。

这是 confluent 的好博文:https : //www.confluent.io/blog/how-choose-number-topics-partitions-kafka-cluster

我个人遇到过 5600 个主题/23000 个分区 ob 6 Broker 节点集群的问题。由于巨大的打开文件句柄,代理变得不可用,我们不得不将集群扩展到 12 个节点。

  • 值得一提的是,这个答案中提到的 Confluence 的博客可以追溯到 2015 年,同时 Kafka 也得到了改进,允许一个 Kafka 集群能够支持更多数量的分区。请参阅这篇较新的文章:https://www.confluence.io/blog/apache-kafka-supports-200k-partitions-per-cluster/ (4认同)