gpt4 book ai didi

java - 消费者在重新启动之前无法从新创建的分区进行轮询

转载 作者:行者123 更新时间:2023-11-29 04:14:05 26 4
gpt4 key购买 nike

我有一个实现KafkaSpring Boot 项目。应用程序使用 producer 在特定 partition 中的 topic 上生成消息。 主题 上的分区 是在运行时动态创建的。在我添加一个新的 partition 之后,已经为给定的 topic 运行的 consumer 看不到这个 partition,但看到年长的。但是,当我重新启动 consumer 时,consumer 开始看到新的 partition 并从中成功开始 polling

我的问题是:我能否在不重启消费者的情况下完成这项工作?如果可以,怎么做?我似乎无法在官方文档中的任何地方找到它。

分区创建:

 Map<String,NewPartitions> increaseTopicPartitions = new HashMap<String,NewPartitions>();
increaseTopicPartitions.put("nodesTopic", NewPartitions.increaseTo(totalPartitions + 1));
BaseProcessor.adminClient.createPartitions(increaseTopicPartitions);

打印分区数:

 int totalPartitions = cluster.partitionCountForTopic(topic);

最佳答案

消费者只会在刷新其集群元数据时看到新分区。默认情况下,这只会每 5 分钟发生一次(请参阅 Consumer configurations 中的 metadata.max.age.ms)。

检测到新分区后,应正确分配它们,消费者应开始接收消息。

关于java - 消费者在重新启动之前无法从新创建的分区进行轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53415279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com