【发布时间】:2021-10-03 21:04:21
【问题描述】:
我有一个 kafka 主题,我必须使用 Java 查找主题中存在的消息数量以及主题中存在的分区数量
【问题讨论】:
标签: java apache-kafka kafka-consumer-api kafka-producer-api
我有一个 kafka 主题,我必须使用 Java 查找主题中存在的消息数量以及主题中存在的分区数量
【问题讨论】:
标签: java apache-kafka kafka-consumer-api kafka-producer-api
您可以使用 kafkacat 命令查找上述信息
kafkacat -L -b brokerip -> 这个命令将显示元数据。您可以找到每个主题的分区数
kafkacat -C -b brokerip -t 主题名 -e -q | \ wc -l -> 用这个命令你可以找到消息的数量。另一种方法是您可以检查给定主题的最后偏移量以查找消息总数
【讨论】:
https://stackoverflow.com/a/60124779/11609323
以上是使用 metrics() api 获取滞后的示例,滞后表示 endOffsets 减去 currentOffset ,你可以得到 startOffset 以及 metric() ,计算 endOffset 减去 startOffset 将得到你的数量当前在主题分区的记录,将每个分区的记录数相加得到主题的总记录数,
注意 StartOffset 并不总是为 0,因为您可能有保留设置修剪旧消息
P.S 这是我们向公司开发人员展示这些信息的方式,我们发现它是更好的方式,然后设置虚拟消费者组开始并重置它
【讨论】: