天天看點

如何檢視Kafka的Topic消費情況

溫馨提示:如果使用電腦檢視圖檔不清晰,可以使用手機打開文章單擊文中的圖檔放大檢視高清原圖。

Fayson的github:

​​https://github.com/fayson/cdhproject​​

提示:代碼塊部分可以左右滑動檢視噢

1.文檔編寫目的

在我們的應用程式消費Kafka的Topic消息時,我們會關注Topic中消息總量以及消費情況,那接下來Fayson就主要介紹下如何在CDH叢集中使用指令行的方式檢視Topic的消費情況。

  • 本次Fayson的測試環境為

1.CM和CDH版本為5.15

2.Redhat7.4

3.Kafka 0.10.2+kafka2.2.0

2.指令行檢視

在Kafka的腳本裡提供了kafka-run-class.sh的腳本,使用該腳本檢視Consumer組内消費Topic的Offset情況。

如何檢視Kafka的Topic消費情況

1.在指令行執行如下指令檢視指定Topic及ConsumerGroup的消費情況

[root@cdh01 bin]# kafka-run-class kafka.tools.ConsumerOffsetChecker --zookeeper cdh01.fayson.com:2181 --group test --topic kafka_kudu_topic_offset_3      

第一次執行檢視到kafka_kudu_topic_offset_3的testgroup組各個Partition的Offset消費情況以及每個Partition的總消息量。

如何檢視Kafka的Topic消費情況

2.kafka_kudu_topic_offset_3的Topic發送600條消息,再次執行指令檢視消費情況

如何檢視Kafka的Topic消費情況

此時沒有消費的應用運作,可以看到Offset的資料未發生變化,而logSize的資料量有增加,每個partition的數量增加200條,剛好為我發送的消息數量。

3.啟動消費程式消費Topic的消息,再次執行指令檢視消費情況

如何檢視Kafka的Topic消費情況

在消費應用運作時,每個Partition的Offset資料發生變化,此時的Offset的資料與logSize的資料一緻,在應用日志中也無新的消息接收,說明Topic的消息已被testgroup組消費完。

3.總結

檢視某個Topic指定組的消息消費情況計算方式:

消費的消息量計算方式:

topic_partition1 offset + topic_partition2 offset +… + topic_partition_n offset

Topic總消息數量計算方式:

topic_partition1 logSize + topic_partition2 logSize +… + topic_partition_n logSize

未消費消息數量計算方式:

Topic總消息數量-消費的消息量

提示:代碼塊部分可以左右滑動檢視噢

為天地立心,為生民立命,為往聖繼絕學,為萬世開太平。

溫馨提示:如果使用電腦檢視圖檔不清晰,可以使用手機打開文章單擊文中的圖檔放大檢視高清原圖。

推薦關注Hadoop實操,第一時間,分享更多Hadoop幹貨,歡迎轉發和分享。

繼續閱讀