Kafka如何知道Java中主题的最新创建的分区ID

时间:2016-03-24 06:58:59

标签: java apache-kafka kafka-producer-api

我正在使用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。

1 个答案:

答案 0 :(得分:0)

你可以TopicMetadataRequest。见the example。你可以在之前和之后做一个并比较结果。否则,新分区总是添加newPartitionID == previousLastPartitionID + 1