有人支持我们吗 partitionsFor 在Kafka版本0.8.0的生产者中的方法?我想用这个方法得到给定一个Kafka主题的分区数。如果这个方法在kafka 0.8.0中不可用,那么在这个特定版本的kafka中,最简单的方法是什么?
partitionsFor
n9vozmp41#
也可以使用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(); }
c90pui9n2#
你为什么不试试下面的方法https://stackoverflow.com/a/35458605/5922904. zkutils还有getpartitionsfortopics方法,也可以使用该方法。虽然我自己没有试过
2条答案
按热度按时间n9vozmp41#
也可以使用listtopics()方法
c90pui9n2#
你为什么不试试下面的方法https://stackoverflow.com/a/35458605/5922904. zkutils还有getpartitionsfortopics方法,也可以使用该方法。虽然我自己没有试过