kafka主题的理想分区数是多少?
What is the ideal number of partitions in kafka topic?
我正在学习 Kafka 并尝试为我最近的搜索应用程序创建一个主题。被推送到 kafka 主题的数据被认为是一个很大的数字。
我的 kafka 集群有 3 个代理,并且已经有为其他需求创建的主题。
现在我应该为我最近的搜索主题选择多少个分区?如果我不明确提供分区号怎么办?选择分区号需要注意什么?
这将取决于您的消费者的吞吐量。如果您每秒生成 100 条消息,而您的消费者每秒可以处理 10 条消息,那么您将需要至少 10 个分区(生产/消费)和 10 个消费者实例。如果您希望此主题能够处理未来的增长,那么您需要增加分区数,以便您可以添加更多的消费者实例来处理新的卷。
另一条建议是让您的分区数成为一个高度可整除的数字,这样您就可以扩展 up/down 个消费者,同时保持他们的负载平衡。例如,如果您选择 10 个分区,那么您将必须拥有 1、2、5 或 10 个消费者实例,以确保它们每次都从相同数量的分区进行处理。如果您选择 12 个分区,那么您可以使用 1、2、3、4、6 或 12 个消费者实例进行平衡。
在决定分区数量之前,我会考虑评估两个主要方面。
第一点,一个消费组的分区,消费者是如何协同作用的。简而言之,一个消费者可以消费来自多个分区的消息,但一个分区不能被多个消费者消费。这意味着,在消费者组中有 no.of 个分区 >= no.of 个消费者是有意义的。否则你最终会得到没有分配任何分区的消费者。
第二点是,从延迟和整个角度来看,您的要求是什么。
简单来说,
延迟 是执行某些操作或产生某些结果所需的时间。延迟以时间单位衡量——小时、分钟、秒、纳秒或时钟周期。
吞吐量 是每单位时间执行的此类操作或产生的结果的数量
现在,回到从 kafka 的角度进行比较,通常,Kafka 集群中的分区越多,吞吐量就越高。但是,如果你真的想要低延迟,你应该小心这个数字。
我正在学习 Kafka 并尝试为我最近的搜索应用程序创建一个主题。被推送到 kafka 主题的数据被认为是一个很大的数字。
我的 kafka 集群有 3 个代理,并且已经有为其他需求创建的主题。
现在我应该为我最近的搜索主题选择多少个分区?如果我不明确提供分区号怎么办?选择分区号需要注意什么?
这将取决于您的消费者的吞吐量。如果您每秒生成 100 条消息,而您的消费者每秒可以处理 10 条消息,那么您将需要至少 10 个分区(生产/消费)和 10 个消费者实例。如果您希望此主题能够处理未来的增长,那么您需要增加分区数,以便您可以添加更多的消费者实例来处理新的卷。
另一条建议是让您的分区数成为一个高度可整除的数字,这样您就可以扩展 up/down 个消费者,同时保持他们的负载平衡。例如,如果您选择 10 个分区,那么您将必须拥有 1、2、5 或 10 个消费者实例,以确保它们每次都从相同数量的分区进行处理。如果您选择 12 个分区,那么您可以使用 1、2、3、4、6 或 12 个消费者实例进行平衡。
在决定分区数量之前,我会考虑评估两个主要方面。
第一点,一个消费组的分区,消费者是如何协同作用的。简而言之,一个消费者可以消费来自多个分区的消息,但一个分区不能被多个消费者消费。这意味着,在消费者组中有 no.of 个分区 >= no.of 个消费者是有意义的。否则你最终会得到没有分配任何分区的消费者。
第二点是,从延迟和整个角度来看,您的要求是什么。 简单来说, 延迟 是执行某些操作或产生某些结果所需的时间。延迟以时间单位衡量——小时、分钟、秒、纳秒或时钟周期。 吞吐量 是每单位时间执行的此类操作或产生的结果的数量
现在,回到从 kafka 的角度进行比较,通常,Kafka 集群中的分区越多,吞吐量就越高。但是,如果你真的想要低延迟,你应该小心这个数字。