我想知道如何通过java api获取kafka中每个主题的消息数量,我不知道想要使用以下帖子中提到的命令行工具。知道怎么做吗?
PS:我不想循环通过KAFKA消费者流来计算计数,我试图在开始时计算这个数(在从Kafka消费之前)
Java, How to get number of messages in a topic in apache kafka
答案 0 :(得分:3)
使用新的KafkaConsumer
,您可以使用seekToBeginning(...)
和seekToEnd(...)
计算每个分区的最大和最小偏移量的差异,并总结这些数字。
如果您寻求,则不会消费消息。请记住,该搜索是懒惰的,即您需要使用position(...)
来实际触发搜索。由于懒惰,两种寻求方法都不会返回任何东西。但是,position(...)
会给出您可以用于计算的偏移量。
请参阅http://kafka.apache.org/0100/javadoc/index.html?org/apache/kafka/clients/consumer/KafkaConsumer.html