kafka 获取主题的分区数

新手上路,请多包涵

如何从代码中获取任何 kafka 主题的分区数。我研究了很多链接,但似乎都不起作用。

提几个:

http://grokbase.com/t/kafka/users/148132gdzk/find-topic-partition-count-through-simpleclient-api

http://grokbase.com/t/kafka/users/151cv3htga/get-replication-and-partition-count-of-a-topic

http://qnalist.com/questions/5809219/get-replication-and-partition-count-of-a-topic

看起来像类似的讨论。

SO 上也有类似的链接,但对此没有有效的解决方案。

原文由 vish4071 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在 0.82 Producer API 和 0.9 Consumer api 中,您可以使用类似

Properties configProperties = new Properties();
configProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
configProperties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.ByteArraySerializer");
configProperties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.StringSerializer");

org.apache.kafka.clients.producer.Producer producer = new KafkaProducer(configProperties);
producer.partitionsFor("test")

原文由 Sunil Patil 发布,翻译遵循 CC BY-SA 3.0 许可协议

转到您的 kafka/bin 目录。

然后运行这个:

 ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_name

您应该在 PartitionCount 下看到您需要的内容。

 Topic:topic_name        PartitionCount:5        ReplicationFactor:1     Configs:
        Topic: topic_name       Partition: 0    Leader: 1001    Replicas: 1001  Isr: 1001
        Topic: topic_name       Partition: 1    Leader: 1001    Replicas: 1001  Isr: 1001
        Topic: topic_name       Partition: 2    Leader: 1001    Replicas: 1001  Isr: 1001
        Topic: topic_name       Partition: 3    Leader: 1001    Replicas: 1001  Isr: 1001
        Topic: topic_name       Partition: 4    Leader: 1001    Replicas: 1001  Isr: 1001


当使用 zookeeper 不再依赖于 Kafka 的版本时

kafka-topics --describe --bootstrap-server localhost:9092 --topic topic_name

原文由 peter.petrov 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题