Kafka0.9获取消费组偏移量

新版本(0.9+)的Kafka将consumer group的消费偏移量保存在一个特殊的topic里,在此之前的版本中都是保存在zookeeper里。

而新版本的kafka SDK并没有暴露出查询偏移量的方法,也就无从得知现在消费积压了多少任务,而我正需要监控这个事情。

经过各种谷歌,最终只能使用Kafka自带的一个工具来获取,方法如下:

它将打印消费组关联的所有topic以及partition的Offset信息,下面是个例子:

CURRENT OFFSET是消费到哪里,LOG END OFFSET是队列总OFFSET,后者减去前者就是堆积的消息个数。

最后

在搞监控的过程中,我发现之前使用的一个consumer group不见了(我换了新的consumer group在消费),也就是通过如下命令无法获取到之前的那个消费组:

经过谷歌发现,原来kafka会自动清理长时间没有动静(没有offset commit)的consumer group,导致备份的offset过期被丢弃了,具体见:stockoverflow

Kafka服务端可以配置参数来控制这种长时间空闲的consumer group的过期时间,避免过了一阵子想继续消费,却发现offset不见了。

 

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~