Java, 如何在 apache kafka 中获取主题中的消息数
2022-08-31 08:47:26
我正在使用apache kafka进行消息传递。我已经在Java中实现了生产者和消费者。我们如何获取主题中的消息数量?
我正在使用apache kafka进行消息传递。我已经在Java中实现了生产者和消费者。我们如何获取主题中的消息数量?
它不是java,但可能很有用
./bin/kafka-run-class.sh kafka.tools.GetOffsetShell \
--broker-list <broker>:<port> \
--topic <topic-name> \
| awk -F ":" '{sum += $3} END {print sum}'
从消费者的角度来看,想到这一点的唯一方法是实际使用消息并对其进行计数。
Kafka 代理公开 JMX 计数器,以获取自启动以来接收的消息数,但您无法知道其中有多少消息已被清除。
在大多数情况下,Kafka 中的消息最好被视为无限流,并且获取当前保留在磁盘上的数量的离散值无关紧要。此外,在处理一组代理时,事情变得更加复杂,这些代理在主题中都有一个消息子集。