繁体   English   中英

kafka主题中理想的分区数是多少?

[英]What is the ideal number of partitions in kafka topic?

我正在学习 Kafka 并尝试为我最近的搜索应用程序创建一个主题。 假设推送到 kafka 主题的数据数量很大。

我的 kafka 集群有 3 个代理,并且已经为其他需求创建了主题。

现在我应该为我最近的搜索主题选择多少分区? 如果我没有明确提供分区号怎么办? 选择分区号时需要考虑哪些事项?

这将取决于您的消费者的吞吐量。 如果您每秒产生 100 条消息,而您的消费者每秒可以处理 10 条消息,那么您将需要至少 10 个分区(生产/消费)和 10 个消费者实例。 如果您希望该主题能够处理未来的增长,那么您将希望将分区计数增加得更高,以便您可以添加更多消费者实例来处理新卷。

另一个建议是让您的分区计数一个高度可整除的数字,以便您可以在保持负载平衡的同时扩大/缩小消费者。 例如,如果您选择 10 个分区,那么您必须拥有 1、2、5 或 10 个消费者实例,以使它们每次处理都来自相同数量的分区。 如果您选择 12 个分区,那么您可以使用 1、2、3、4、6 或 12 个消费者实例来平衡。

在决定分区数量之前,我会考虑评估两件主要事情。

  1. 第一点是,消费者组的分区,消费者如何一起行动。 简单来说,一个消费者可以消费来自多个分区的消息,但一个分区不能被多个消费者消费。 这意味着,消费者组中的分区数 >= 消费者数是有意义的。 否则,您最终将获得没有分配任何分区的消费者。

  2. 第二点是,从延迟与整个角度来看,您的要求是什么。 简单来说,延迟是执行某些操作或产生某些结果所需的时间。 延迟以时间单位测量——小时、分钟、秒、纳秒或时钟周期。 吞吐量是每单位时间执行的此类操作或产生的结果的数量

现在,回到从 kafka 的角度进行比较,一般来说,Kafka 集群中的更多分区会导致更高的吞吐量。 但是,如果你真的在寻找低延迟,你应该小心这个数字。

暂无
暂无

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

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