1 前言
因工作需要对kafka的偏移量进行监控,但是相信很多人跟我一样百度一番后却未必能找到适合自己所需的kafka监控代码,这里笔者总结了自己已经在项目中使用的代码,以及解决思路,希望为此对大家有所帮助
2 代码思路
整体代码思路如下:
- 获取 topic 的分区信息,包括:broker,partitionId(主要就是这两个信息)等信息
- 获取 partition 的 logSize
- 获取 partition 已经被消费组 committed的 offset
- 计算 lag = logSize - offset
3 代码样例
由于代码篇幅过长所以不放在此链接里演示,可点击下面三个链接分别调到对应的文章
- 适用于 kafka_2.10-0.8.X 以及之前的版本
- 适用于 kafka_2.10-0.9.X 至 kafka_2.10-0.10.0.X 之间的版本
- 适用于 kafka_2.10-0.10.1.X 以及之后的版本
4 扩展
-
kafka版本怎么看?
以 kafka_2.10-0.10.0.1 为例,2.10是指scala的版本,0.10.0.1是指kafka版本
-
样例代码不符合当前版本?
可以通过查看 kafka 官方 api 文档找到相应版本代码进行调试
-
kafka api 如何查看?
1)登陆kafka官网 https://kafka.apache.org/documentation.html,选择所需版本
2)点击所需要查看的 api
3)点击 javadoc,即可到所需查看版本 api 文档
5 学习与参考网站
-
low level api 可参考
https://www.orchome.com/11
https://cwiki.apache.org/confluence/display/KAFKA/Committing+and+fetching+consumer+offsets+in+Kafka#app-switcher
-
官方 api 可参考
https://kafka.apache.org/documentation/