7.【kafka運維】 kafka-consumer-groups.sh消費者組管理

這是我參與8月更文挑戰的第12天,活動詳情查看:8月更文挑戰java

@[TOC]git

平常運維問題排查 怎麼可以少了滴滴開源的 滴滴開源LogiKM一站式Kafka監控與管控平臺github

消費者組管理 kafka-consumer-groups.sh

1. 查看消費者列表--list

sh bin/kafka-consumer-groups.sh --bootstrap-server xxxx:9090 --list 在這裏插入圖片描述面試

先調用MetadataRequest拿到全部在線Broker列表 再給每一個Broker發送ListGroupsRequest請求獲取 消費者組數據apache

2. 查看消費者組詳情--describe

DescribeGroupsRequestbootstrap

查看消費組詳情--group--all-groupsmarkdown

查看指定消費組詳情--group sh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090 --describe --group test2_consumer_groupapp


查看全部消費組詳情--all-groups sh bin/kafka-consumer-groups.sh --bootstrap-server xxxxx:9090 --describe --all-groups 查看該消費組 消費的全部Topic、及所在分區、最新消費offset、Log最新數據offset、Lag還未消費數量、消費者ID等等信息運維

在這裏插入圖片描述

查詢消費者成員信息--membersoop

全部消費組成員信息 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 在這裏插入圖片描述

3. 刪除消費者組--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.

複製代碼

4. 重置消費組的偏移量 --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**可讓咱們更靈活一點;

  1. 先配置cvs文檔

格式爲: 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

5. 刪除偏移量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重置到最近

More

Kafka專欄持續更新中...(源碼、原理、實戰、運維、視頻、面試視頻)


【kafka運維】Kafka全網最全最詳細運維命令合集(精品強烈建議收藏!!!)_石臻臻的雜貨鋪-CSDN博客

【kafka實戰】分區重分配可能出現的問題和排查問題思路(生產環境實戰,乾貨!!!很是幹!!!建議收藏)

【kafka異常】kafka 常見異常處理方案(持續更新! 建議收藏)

【kafka運維】分區從分配、數據遷移、副本擴縮容 (附教學視頻)

【kafka源碼】ReassignPartitionsCommand源碼分析(副本擴縮、數據遷移、副本重分配、副本跨路徑遷移

【kafka】點擊更多....

相關文章
相關標籤/搜索