Java,如何在 apache kafka 中获取主题中的消息数

新手上路,请多包涵

我正在使用 apache kafka 进行消息传递。我已经用 Java 实现了生产者和消费者。我们如何获得主题中的消息数?

原文由 Chetan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 545
2 个回答

从消费者的角度来看,想到的唯一方法是实际使用消息并计算它们。

Kafka 代理公开 JMX 计数器以记录自启动以来收到的消息数量,但您不知道其中有多少已经被清除。

在大多数常见场景中,Kafka 中的消息最好被视为无限流,获取当前保存在磁盘上的消息数量的离散值并不重要。此外,当处理一组在主题中都有消息子集的代理时,事情会变得更加复杂。

原文由 Lundahl 发布,翻译遵循 CC BY-SA 3.0 许可协议

它不是java,但可能有用

./bin/kafka-run-class.sh kafka.tools.GetOffsetShell \
  --broker-list <broker>:<port> \
  --topic <topic-name> \
  | awk -F  ":" '{sum += $3} END {print sum}'

原文由 ssemichev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题