《Apache Kafka 实战》笔记 - 7.6.5 获取topic当前消息数

目标

获取某 topic 共生产多少条消息。

创建测试 topic

bin/kafka-topics.sh -zookeeper localhost:2181 --create --partitions 5 --replication-factor 1 --topic test765

生产测试消息

为 topic test765 生产 500000 条消息:

bin/kafka-producer-perf-test.sh  --topic test765 --throughput  -1  --record-size 10 --num-records 500000 --producer-props bootstrap.servers=localhost:9092

获取 topic 消息数

bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test765 --time -1

# 输出信息
test765:0:100000
test765:1:100000
test765:2:100000
test765:3:100000
test765:4:100000
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test765 --time -2

# 输出信息
test765:0:0
test765:1:0
test765:2:0
test765:3:0
test765:4:0

--time-1 表示要获取指定topic所有分区当前的最大位移,--time-2 表示获取当前最早位移。

两个命令的输出结果相减便可得到所有分区当前的消息总数。

分区当前的消息总数 = [--time-1] - [--time-2]

相减是因为随着 kafka 的运行,topic 中有的消息可能会被删除,,因此 --time-1 的结果其实表示的是历史上该topic生产的最大消息数,如果用户要统计当前的消息总数就必须减去 --time-2 的结果。

本例中没有任何消息被删除,故 --time-2 的结果全是0,表示最早位移都是0,消息总数等于历史上发送的消息总数。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,243评论 19 139
  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,839评论 13 425
  • kafka的定义:是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Act...
    时待吾阅读 10,789评论 1 15
  • 昨天看到朋友圈就睡了~今天大概6点多自然醒,7.13起来~感觉阳光在,明媚在,你在~没有什么比一场断离舍更适合今天...
    Luna321阅读 1,522评论 0 0
  • 两天了,我仍未能从失去二王的悲伤中走出,我多么想白天是被它抱着脚啃醒的,然后我给它两巴掌,把它扔到头边或肚子上继续...
    马二王阅读 3,372评论 0 1

友情链接更多精彩内容