如何查看kafka每个话题一共分了几个分区_kafka获取某个主题的分区数

本文介绍了如何使用Java API查询Kafka中特定主题的分区数。通过建立SimpleConsumer连接到集群,发送TopicMetadataRequest并解析响应,可以获取到指定主题的所有分区ID。
摘要由CSDN通过智能技术生成

这里是我如何做到这一点:那我只需要拉出分区

/**

* Retrieves list of all partitions IDs of the given {@code topic}.

*

* @param topic

* @param seedBrokers List of known brokers of a Kafka cluster

* @return list of partitions or empty list if none found

*/

public static List getPartitionsForTopic(String topic, List seedBrokers) {

List partitions = new ArrayList<>();

for (BrokerInfo seed : seedBrokers) {

SimpleConsumer consumer = null;

try {

consumer = new SimpleConsumer(seed.getHost(), seed.getPort(), 20000, 128 * 1024, "partitionLookup");

List topics = Collections.singletonList(topic);

TopicMetadataRequest req = new TopicMetadataRequest(topics);

kafka.javaapi.TopicMetadataResponse resp = consumer.send(req);

// find our partition's metadata

List metaData = resp.topicsMetadata();

for (TopicMetadata item : metaData) {

for (PartitionMetadata part : item.partitionsMetadata()) {

partitions.add(part.partitionId());

}

}

break; // leave on first successful broker (every broker has this info)

} catch (Exception e) {

// try all available brokers, so just report error and go to next one

LOG.error("Error communicating with broker [" + seed + "] to find list of partitions for [" + topic + "]. Reason: " + e);

} finally {

if (consumer != null)

consumer.close();

}

}

return partitions;

}

注ID,但您可以另外检索任何其他分区元数据,如leader,isr,replicas,...

和BrokerInfo只是一个简单的POJO,它有host和port字段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值