【问题标题】:How to find number of messages present in topic , number of partitions present for a topic using Java?如何使用 Java 查找主题中存在的消息数、主题中存在的分区数?
【发布时间】:2021-10-03 21:04:21
【问题描述】:

我有一个 kafka 主题,我必须使用 Java 查找主题中存在的消息数量以及主题中存在的分区数量

【问题讨论】:

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


    【解决方案1】:

    您可以使用 kafkacat 命令查找上述信息

    kafkacat -L -b brokerip -> 这个命令将显示元数据。您可以找到每个主题的分区数

    kafkacat -C -b brokerip -t 主题名 -e -q | \ wc -l -> 用这个命令你可以找到消息的数量。另一种方法是您可以检查给定主题的最后偏移量以查找消息总数

    【讨论】:

    • OP 请求使用 java 查找
    【解决方案2】:

    https://stackoverflow.com/a/60124779/11609323

    以上是使用 metrics() api 获取滞后的示例,滞后表示 endOffsets 减去 currentOffset ,你可以得到 startOffset 以及 metric() ,计算 endOffset 减去 startOffset 将得到你的数量当前在主题分区的记录,将每个分区的记录数相加得到主题的总记录数,

    注意 StartOffset 并不总是为 0,因为您可能有保留设置修剪旧消息

    P.S 这是我们向公司开发人员展示这些信息的方式,我们发现它是更好的方式,然后设置虚拟消费者组开始并重置它

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 2017-10-02
      • 2015-04-19
      相关资源
      最近更新 更多