1. 程式人生 > >kafka檢視消費資料

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引數上即可!

 

 

本文參考連結:

https://blog.csdn.net/sweetgirl520/article/details/80323584