0

我正在使用 AdminUtils 为主题动态创建分区。我必须获取新创建的分区的 partitionId 才能将其保存在 Mysql 中以用于我的业务逻辑。我怎样才能做到这一点?我当前的代码:

 AdminUtils.addPartitions(zkUtils,KAFKA_PRODUCER_TOPIC,currentPartitionCount+1,"",true);

            List<PartitionInfo> infoList = producer.partitionsFor(KAFKA_PRODUCER_TOPIC);
            for(PartitionInfo info : infoList){
                System.out.println(info.partition());
            }
            createdPartionId = infoList.get(0).partition();

上面的问题是最新创建的分区没有出现在 PartitionInfo 列表中。不知道为什么。producer 是 Kafka Producer API。

4

1 回答 1

0

你可以做一个TopicMetadataRequest. 请参阅示例。您可以在之前和之后做一个并比较结果。否则,新分区总是会添加一个newPartitionID == previousLastPartitionID + 1

于 2016-03-24T13:51:31.067 回答