這是我參與8月更文挑戰的第12天,活動詳情查看:8月更文挑戰java
@[TOC]git
平常運維 、問題排查 怎麼可以少了滴滴開源的 滴滴開源LogiKM一站式Kafka監控與管控平臺github
--list
sh bin/kafka-consumer-groups.sh --bootstrap-server xxxx:9090 --list
面試
先調用MetadataRequest
拿到全部在線Broker列表 再給每一個Broker發送ListGroupsRequest
請求獲取 消費者組數據apache
--describe
DescribeGroupsRequest
bootstrap
查看消費組詳情--group
或 --all-groups
markdown
查看指定消費組詳情
--group
sh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090 --describe --group test2_consumer_group
app
查看全部消費組詳情
--all-groups
sh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090 --describe --all-groups
查看該消費組 消費的全部Topic、及所在分區、最新消費offset、Log最新數據offset、Lag還未消費數量、消費者ID等等信息運維
查詢消費者成員信息--members
oop
全部消費組成員信息
sh bin/kafka-consumer-groups.sh --describe --all-groups --members --bootstrap-server xxx:9090
指定消費組成員信息sh bin/kafka-consumer-groups.sh --describe --members --group test2_consumer_group --bootstrap-server xxxx:9090
查詢消費者狀態信息--state
全部消費組狀態信息
sh bin/kafka-consumer-groups.sh --describe --all-groups --state --bootstrap-server xxxx:9090
指定消費組狀態信息sh bin/kafka-consumer-groups.sh --describe --state --group test2_consumer_group --bootstrap-server xxxxx:9090
--delete
DeleteGroupsRequest
刪除消費組--delete
刪除指定消費組
--group
sh bin/kafka-consumer-groups.sh --delete --group test2_consumer_group --bootstrap-server xxxx:9090
刪除全部消費組--all-groups
sh bin/kafka-consumer-groups.sh --delete --all-groups --bootstrap-server xxxx:9090
PS: 想要刪除消費組前提是這個消費組的全部客戶端都中止消費/不在線纔可以成功刪除;不然會報下面異常
Error: Deletion of some consumer groups failed:
* Group 'test2_consumer_group' could not be deleted due to: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.GroupNotEmptyException: The group is not empty.
複製代碼
--reset-offsets
可以執行成功的一個前提是 消費組這會是不可用狀態;
下面的示例使用的參數是: --dry-run
;這個參數表示預執行,會打印出來將要處理的結果; 等你想真正執行的時候請換成參數--excute
;
下面示例 重置模式都是 --to-earliest
重置到最先的;
請根據須要參考下面 相關重置Offset的模式 換成其餘模式;
重置指定消費組的偏移量 --group
重置指定消費組的全部Topic的偏移量
--all-topic
sh bin/kafka-consumer-groups.sh --reset-offsets --to-earliest --group test2_consumer_group --bootstrap-server xxxx:9090 --dry-run --all-topic
重置指定消費組的指定Topic的偏移量--topic
sh bin/kafka-consumer-groups.sh --reset-offsets --to-earliest --group test2_consumer_group --bootstrap-server xxxx:9090 --dry-run --topic test2
重置全部消費組的偏移量 --all-group
重置全部消費組的全部Topic的偏移量
--all-topic
sh bin/kafka-consumer-groups.sh --reset-offsets --to-earliest --all-group --bootstrap-server xxxx:9090 --dry-run --all-topic
重置全部消費組中指定Topic的偏移量--topic
sh bin/kafka-consumer-groups.sh --reset-offsets --to-earliest --all-group --bootstrap-server xxxx:9090 --dry-run --topic test2
--reset-offsets
後面須要接重置的模式
相關重置Offset的模式
參數 | 描述 | 例子 |
---|---|---|
--to-earliest : |
重置offset到最開始的那條offset(找到還未被刪除最先的那個offset) | |
--to-current : |
直接重置offset到當前的offset,也就是LOE | |
--to-latest : |
重置到最後一個offset | |
--to-datetime : |
重置到指定時間的offset;格式爲:YYYY-MM-DDTHH:mm:SS.sss ; |
--to-datetime "2021-6-26T00:00:00.000" |
--to-offset |
重置到指定的offset,可是一般狀況下,匹配到多個分區,這裏是將匹配到的全部分區都重置到這一個值; 若是 1.目標最大offset<--to-offset , 這個時候重置爲目標最大offset;2.目標最小offset>--to-offset ,則重置爲最小; 3.不然的話纔會重置爲--to-offset 的目標值; 通常不用這個 |
--to-offset 3465 |
--shift-by |
按照偏移量增長或者減小多少個offset;正的爲往前增長;負的日後退;固然這裏也是匹配全部的; | --shift-by 100 、--shift-by -100 |
--from-file |
根據CVS文檔來重置; 這裏下面單獨講解 |
--from-file
着重講解一下
上面其餘的一些模式重置的都是匹配到的全部分區; 不可以每一個分區重置到不一樣的offset;不過**
--from-file
**可讓咱們更靈活一點;
格式爲: Topic:分區號: 重置目標偏移量 cvs test2,0,100 test2,1,200 test2,2,300
2. 執行命令 >sh bin/kafka-consumer-groups.sh --reset-offsets --group test2_consumer_group --bootstrap-server xxxx:9090 --dry-run --from-file config/reset-offset.csv
delete-offsets
可以執行成功的一個前提是 消費組這會是不可用狀態;
偏移量被刪除了以後,Consumer Group下次啓動的時候,會從頭消費;
sh bin/kafka-consumer-groups.sh --delete-offsets --group test2_consumer_group2 --bootstrap-server XXXX:9090 --topic test2
相關可選參數
參數 | 描述 | 例子 |
---|---|---|
--bootstrap-server |
指定鏈接到的kafka服務; | --bootstrap-server localhost:9092 |
--list |
列出全部消費組名稱 | --list |
--describe |
查詢消費者描述信息 | --describe |
--group |
指定消費組 | |
--all-groups |
指定全部消費組 | |
--members |
查詢消費組的成員信息 | |
--state |
查詢消費者的狀態信息 | |
--offsets |
在查詢消費組描述信息的時候,這個參數會列出消息的偏移量信息; 默認就會有這個參數的; | |
dry-run |
重置偏移量的時候,使用這個參數可讓你預先看到重置狀況,這個時候尚未真正的執行,真正執行換成--excute ;默認爲dry-run |
|
--excute |
真正的執行重置偏移量的操做; | |
--to-earliest |
將offset重置到最先 | |
to-latest |
將offset重置到最近 |
Kafka專欄持續更新中...(源碼、原理、實戰、運維、視頻、面試視頻)
【kafka運維】Kafka全網最全最詳細運維命令合集(精品強烈建議收藏!!!)_石臻臻的雜貨鋪-CSDN博客
【kafka實戰】分區重分配可能出現的問題和排查問題思路(生產環境實戰,乾貨!!!很是幹!!!建議收藏)
【kafka異常】kafka 常見異常處理方案(持續更新! 建議收藏)
【kafka運維】分區從分配、數據遷移、副本擴縮容 (附教學視頻)
【kafka源碼】ReassignPartitionsCommand源碼分析(副本擴縮、數據遷移、副本重分配、副本跨路徑遷移