一、如何查看
在老版本中,使用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會顯示kafka總共有多少數據,以及已經被消費了多少條
標記解釋:
TOPIC |
PARTITION |
CURRENT-OFFSET |
LOG-END-OFFSET |
LAG |
CONSUMER-ID |
HOST |
CLIENT-ID |
---|---|---|---|---|---|---|---|
topic名字 | 分區id | 當前已消費的條數 | 總條數 | 未消費的條數 | 消費id | 主機ip | 客戶端id |
從上面的信息可以看出,topic為xx-pending-business-c0a9dc71 總共消費了4條信息, 未消費的條數為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參數上即可!
本文參考鏈接: