@[TOC]html
平常運維 問題排查 怎麼可以少了滴滴開源的 滴滴開源LogiKM一站式Kafka監控與管控平臺git
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3 --topic test
github
相關可選參數面試
參數 | 描述 | 例子 |
---|---|---|
--bootstrap-server 指定kafka服務 |
指定鏈接到的kafka服務; 若是有這個參數,則 --zookeeper 能夠不須要 |
--bootstrap-server localhost:9092 |
--zookeeper |
棄用, 經過zk的鏈接方式鏈接到kafka集羣; | --zookeeper localhost:2181 或者localhost:2181/kafka |
--replication-factor |
副本數量,注意不能大於broker數量;若是不提供,則會用集羣中默認配置 | --replication-factor 3 |
--partitions |
分區數量,當建立或者修改topic的時候,用這個來指定分區數;若是建立的時候沒有提供參數,則用集羣中默認值; 注意若是是修改的時候,分區比以前小會有問題 | --partitions 3 |
--replica-assignment |
副本分區分配方式;建立topic的時候能夠本身指定副本分配狀況; | --replica-assignment BrokerId-0:BrokerId-1:BrokerId-2,BrokerId-1:BrokerId-2:BrokerId-0,BrokerId-2:BrokerId-1:BrokerId-0 ; 這個意思是有三個分區和三個副本,對應分配的Broker; 逗號隔開標識分區;冒號隔開表示副本 |
--config <String: name=value> |
用來設置topic級別的配置以覆蓋默認配置;只在--create 和--bootstrap-server 同時使用時候生效; 能夠配置的參數列表請看文末附件 | 例如覆蓋兩個配置 --config retention.bytes=123455 --config retention.ms=600001 |
--command-config <String: command 文件路徑> |
用來配置客戶端Admin Client啓動配置,只在--bootstrap-server 同時使用時候生效; | 例如:設置請求的超時時間 --command-config config/producer.proterties ; 而後在文件中配置 request.timeout.ms=300000 |
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test
正則表達式
支持正則表達式匹配Topic來進行刪除,只須要將topic 用雙引號包裹起來 例如: 刪除以create_topic_byhand_zk
爲開頭的topic;bootstrap
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic "create_topic_byhand_zk.*"markdown
.
表示任意匹配除換行符 \n 以外的任何單字符。要匹配 . ,請使用 . 。app
·*·
:匹配前面的子表達式零次或屢次。要匹配 * 字符,請使用 *。 .*
: 任意字符運維
刪除任意Topic (慎用)ide
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic ".*?"
更多的用法請參考正則表達式
zk方式(不推薦)
>bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic topic1 --partitions 2
kafka版本 >= 2.2 支持下面方式(推薦)
單個Topic擴容
bin/kafka-topics.sh --bootstrap-server broker_host:port --alter --topic test_create_topic1 --partitions 4
批量擴容 (將全部正則表達式匹配到的Topic分區擴容到4個)
sh bin/kafka-topics.sh --topic ".*?" --bootstrap-server 172.23.248.85:9092 --alter --partitions 4
".*?"
正則表達式的意思是匹配全部; 您可按需匹配
PS: 當某個Topic的分區少於指定的分區數時候,他會拋出異常;可是不會影響其餘Topic正常進行;
相關可選參數
參數 | 描述 | 例子 |
---|---|---|
--replica-assignment |
副本分區分配方式;建立topic的時候能夠本身指定副本分配狀況; | --replica-assignment BrokerId-0:BrokerId-1:BrokerId-2,BrokerId-1:BrokerId-2:BrokerId-0,BrokerId-2:BrokerId-1:BrokerId-0 ; 這個意思是有三個分區和三個副本,對應分配的Broker; 逗號隔開標識分區;冒號隔開表示副本 |
PS: 雖然這裏配置的是所有的分區副本分配配置,可是正在生效的是新增的分區; 好比: 之前3分區1副本是這樣的
Broker-1 | Broker-2 | Broker-3 | Broker-4 |
---|---|---|---|
0 | 1 | 2 |
如今新增一個分區,--replica-assignment
2,1,3,4 ; 看這個意思好像是把0,1號分區互相換個Broker
Broker-1 | Broker-2 | Broker-3 | Broker-4 |
---|---|---|---|
1 | 0 | 2 | 3 |
可是實際上不會這樣作,Controller在處理的時候會把前面3個截掉; 只取新增的分區分配方式,原來的仍是不會變
Broker-1 | Broker-2 | Broker-3 | Broker-4 |
---|---|---|---|
0 | 1 | 2 | 3 |
1.查詢單個Topic
sh bin/kafka-topics.sh --topic test --bootstrap-server xxxx:9092 --describe --exclude-internal
2.批量查詢Topic(正則表達式匹配,下面是查詢全部Topic)
sh bin/kafka-topics.sh --topic ".*?" --bootstrap-server xxxx:9092 --describe --exclude-internal
支持正則表達式匹配Topic,只須要將topic 用雙引號包裹起來
相關可選參數
參數 | 描述 | 例子 |
---|---|---|
--bootstrap-server 指定kafka服務 |
指定鏈接到的kafka服務; 若是有這個參數,則 --zookeeper 能夠不須要 |
--bootstrap-server localhost:9092 |
--at-min-isr-partitions |
查詢的時候省略一些計數和配置信息 | --at-min-isr-partitions |
--exclude-internal |
排除kafka內部topic,好比__consumer_offsets-* |
--exclude-internal |
--topics-with-overrides |
僅顯示已覆蓋配置的主題,也就是單獨針對Topic設置的配置覆蓋默認配置;不展現分區信息 | --topics-with-overrides |
1.查詢全部Topic列表
sh bin/kafka-topics.sh --bootstrap-server xxxxxx:9092 --list --exclude-internal
2.查詢匹配Topic列表(正則表達式)
查詢
test_create_
開頭的全部Topic列表sh bin/kafka-topics.sh --bootstrap-server xxxxxx:9092 --list --exclude-internal --topic "test_create_.*"
相關可選參數
參數 | 描述 | 例子 |
---|---|---|
--exclude-internal |
排除kafka內部topic,好比__consumer_offsets-* |
--exclude-internal |
--topic |
能夠正則表達式進行匹配,展現topic名稱 | --topic |
關於做者:石臻臻的雜貨鋪, 專一於 Java領域、大數據領域 等知識分享, 內容多爲 原理 、源碼、實戰 等等, 堅持輸出乾貨,所寫內容一定通過驗證,並深刻源碼分析,保證內容準確性, 長期在CSDN、和公衆號【石臻臻的雜貨鋪】發佈原創文章,歡迎關注! 若是有相關技術領域問題,歡迎進羣交流,各個領域都有專人解答,你所問的,都會獲得迴應!
滴滴開源Logi-KafkaManager 一站式Kafka監控與管控平臺
Kafka專欄持續更新中...(源碼、原理、實戰、運維、視頻、面試視頻)
【kafka運維】Kafka全網最全最詳細運維命令合集(精品強烈建議收藏!!!)_石臻臻的雜貨鋪-CSDN博客
【kafka實戰】分區重分配可能出現的問題和排查問題思路(生產環境實戰,乾貨!!!很是幹!!!建議收藏)
【kafka異常】kafka 常見異常處理方案(持續更新! 建議收藏)
【kafka運維】分區從分配、數據遷移、副本擴縮容 (附教學視頻)
【kafka源碼】ReassignPartitionsCommand源碼分析(副本擴縮、數據遷移、副本重分配、副本跨路徑遷移