2017-08-26 11 views
0

kafkaバージョン0.8.0のプロデューサでpartitionsForメソッドをサポートしていますか?私は、このメソッドを使用して、カフカのトピックを与えられたパーティションの数を取得します。kafkaのプロデューサのパーティション数をpartitionForメソッドを使用して0.8.0にする

この方法をkafka 0.8.0で使用できない場合、この特定のバージョンのkafkaでプロデューサのパーティション数を取得する最も簡単な方法は何ですか?

答えて

0

あなたはlistTopicsを使用することができます()メソッドもここ

ArrayList<Topics> topicList = new ArrayList<Topics>(); 
    Properties props = new Properties(); 
    Map<String, List<PartitionInfo>> topics; 
    Topics topic; 
    InputStream input = 
getClass().getClassLoader().getResourceAsStream("kafkaCluster.properties"); 
    try { 
     props.load(input); 
     props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, 
props.getProperty("BOOTSTRAP_SERVERS_CONFIG")); 
     props.put("key.deserializer", 
"org.apache.kafka.common.serialization.StringDeserializer"); 
     props.put("value.deserializer", 
"org.apache.kafka.common.serialization.StringDeserializer"); 
     KafkaConsumer<String, String> consumer = new KafkaConsumer<String, 
    String>(props); 
     topics = consumer.listTopics(); 
     // System.out.println(topics.get(topics)); 
     for (Map.Entry<String, List<PartitionInfo>> entry : 
    topics.entrySet()) { 
      System.out.println("Key = " + entry.getKey() + ", Value = " + 
    entry.getValue()); 
      topic = new Topics(); 
      topic.setTopic_name(entry.getKey()); 
      topic.setPartitions(Integer.toString(entry.getValue().size())); 
      topicList.add(topic); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

配列の要素数は、パーティションの数です。 – Megha

0

https://stackoverflow.com/a/35458605/5922904のアプローチを試してみませんか? また、ZkUtilsにはgetPartitionsForTopicsメソッドもあり、これも使用できます。私が試したし、それをテストしていないが、自分自身が

関連する問題