我正在使用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。
答案 0 :(得分:0)
你可以TopicMetadataRequest
。见the example。你可以在之前和之后做一个并比较结果。否则,新分区总是添加newPartitionID == previousLastPartitionID + 1