kafka檢視消費資料
一、如何檢視
在老版本中,使用kafka-run-class.sh 指令碼進行檢視。但是對於最新版本,kafka-run-class.sh 已經不能使用,必須使用另外一個指令碼才行,它就是kafka-consumer-groups.sh
普通版
檢視所有組
要想查詢消費資料,必須要指定組。那麼線上執行的kafka有哪些組呢?使用以下命令:
bin/kafka-consumer-groups.sh --bootstrap-server kafka-1.default.svc.cluster.local:9092 --list
注意:根據實際情況修改kafka的連線地址
執行輸出:
...
usercenter
...
這些組在是程式程式碼裡面定義的,比如usercenter就是一個業務模組。
檢視消費情況
bin/kafka-consumer-groups.sh --describe --bootstrap-server kafka-1.default.svc.cluster.local:9092 --group usercenter
引數解釋:
--describe 顯示詳細資訊
--bootstrap-server 指定kafka連線地址
--group 指定組。
注意:--group指定的組必須存在才行!可以用上面的--list命令來檢視
執行輸出:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID xx-pending-business-c0a9dc75 0 - 0 - consumer-1-20b51e57-70de-417b-ba4a-4e7ffbb6df7a /192.169.220.117 consumer-1 xx-pending-business-c0a9dc71 0 1082 1082 0 - - -
指定自己的分組 自己消費的topic會顯示kafka總共有多少資料,以及已經被消費了多少條
標記解釋:
GROUP | TOPIC | PID | OFFSET | LOGSIZE | LAG |
消費者組 | 主題id | 分割槽id | 當前已消費的條數 | 總條數 | 未消費的條數 |
從上面的資訊可以看出,topic為xx-pending-business-c0a9dc71 總共消費了1082條資訊, 未消費的條數為0。也就是說,消費資料沒有積壓的情況!
注意:以kafkaspout類作為消費者去讀kafka資料,相當於直接從kafka server上取檔案,沒有消費者組的概念
每次讀的資料存在自己zk的offet中,所以不能通過上述命令檢視
ACL版檢視
如果kafka啟用了acl許可權驗證,則不能直接使用上面的命令檢視,需要增加引數--command-config引數才行
此引數必須要指定一個配置檔案才行
修改預設的配置檔案
cd /kafka_2.12-2.1.0/ vim config/config/consumer.properties
最後一行增加2行,表示指定SASL協議連線
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
檢視所有組
bin/kafka-consumer-groups.sh --command-config config/consumer.properties --bootstrap-server kafka-1.default.svc.cluster.local:9092 --list
注意:--command-config 後面的配置檔案,我用的是相對路徑。請以實際情況為準!
檢視消費情況
bin/kafka-consumer-groups.sh --command-config config/consumer.properties --describe --bootstrap-server kafka-1.default.svc.cluster.local:9092 --group usercenter
如果需要使用shell指令碼,來檢測kafka的消費資料,有沒有積壓。
可以先使用--list命令,然後對結果使用for迴圈遍歷,將組名賦予到--group引數上即可!
本文參考連結: