【发布时间】:2018-11-26 08:02:51
【问题描述】:
我有一个主题有 10 个分区,1 个消费者组有 4 个消费者,工作人员大小为 3。
我可以看到分区中的消息分布不均匀,一个分区有这么多数据而另一个是空闲的。
我怎样才能让我的生产者将负载平均分配到所有分区中,以便所有分区都被正确利用?
【问题讨论】:
-
我需要澄清一些事情。您使用的是自定义分区策略还是默认分区策略?怎么,你知道消息分布不均吗?
-
@IndraneelBende 当我描述我的主题时,它显示了延迟,通过它我可以确认某些分区的延迟超过 1lac,而有些分区的延迟为 0,这意味着在划分。不确定策略,但这是我可以在代码中看到的:this.partitionerClass = props.getString("partitioner.class", "kafka.producer.DefaultPartitioner");
-
如果您使用默认分区程序,则消息将在不同分区之间以循环方式生成。你是如何计算这个延迟的?
-
Lag=LOG END OFFSET - CURRENT OFFSET 是的,这就是 kakfa 文档所说的,但不明白为什么一个分区过载而另一个分区空闲。
标签: apache-kafka kafka-producer-api