当前位置:  开发笔记 > 前端 > 正文

计数存储在kafka主题中的消息数

如何解决《计数存储在kafka主题中的消息数》经验,为你挑选了3个好方法。

我正在使用0.9.0.0版本的Kafka,我想在不使用管理脚本kafka-console-consumer.sh的情况下计算主题中的消息数.

我已经尝试了答案Java中的所有命令,如何在apache kafka中获取主题中的消息数量, 但没有人产生结果.有人可以帮我从这里出去吗?



1> amethystic..:

您可以尝试执行以下命令:

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092,localhost:9093,localhost:9094 --topic test-topic --time -1

然后,总结每个分区的所有计数.



2> Quentin Geff..:

您可以使用以下内容来总结所有计数:

.../bin/kafka-run-class kafka.tools.GetOffsetShell --broker-list <>:9092,<>... --topic <> --time -1 | while IFS=: read topic_name partition_id number; do echo "$number"; done | paste -sd+ - | bc


谢谢!更简单的总结:kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list $ KAFKA_CLUSTER_HOSTS --topic $ TOPIC_NAME --time -1 | tr":"""| awk'{sum + = $ 3} END {print sum}'

3> 小智..:

从技术上讲,您可以简单地使用主题中的所有消息并计算它们:

例:

kafka-run-class.sh kafka.tools.SimpleConsumerShell --broker-list localhost:9092 --topic XYZ --partition 0*

但是,kafka.tools.GetOffsetShell方法将为您提供偏移,而不是主题中的实际消息数.这意味着如果主题被压缩,如果您通过消费或通过读取偏移来计算消息,则会得到两个不同的数字.

主题压缩:https://kafka.apache.org/documentation.html#design_compactionbasics

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有