kafka之主題操作kafka topics命令

2021-08-21 20:33:42 字數 2530 閱讀 9720

建立kafka的tiopic

kafka-topics.bat --create -zookeeper localhost:2182 --replication-factor 2 --partitions 3 --topic testmcdull222

--create 建立主題

--topic 主題名稱

-zookeeper zookeeper集群位址

--replication-factor  每個分割槽副本因子個數即每個分割槽有多少副本

--partitions  主題partition數量

--replica-assignment不能同時使用--partitions --replication-factor引數。指定partition的ar列表,未指定ar列表則會根據負載均衡演算法將partition的replica均衡的分布在kafka集群中。--replica-assignment 1:3,2:1,3:2,逗號區分不同的partition,冒號區別相同partition中的replica,partition-0的ar=[1,3],partition-1的ar=[2,1],partition-2的ar=[3,2]。testmcdull222ar列表計算出來時--replica-assignment 2:3,1:3,1:2 。

第乙個broker

第二個broker

第三個broker

--replica-assignment 引數一般不由使用者指定,由kafka預設分配演算法保證,有兩個原則:

(1)使topic的所有partition replica能夠均勻地分配至各個kafka broker(負載均衡);

(2)partition 內的replica能夠均勻地分配在不同kafka broker。如果partition的第乙個replica分配至某乙個kafka broker,那麼這個partition的其它replica則需要分配至其它的kafka brokers,即partition replica分配至不同的broker;

1、從broker隨機位置開始按照輪詢方式選擇每個partition的第乙個replica

2、不同partition剩餘replica按照一定的偏移量緊跟著各自的第乙個replica

指定--replica-assignment引數相當於指定了分割槽數、副本數。

kafka-topics.bat --create -zookeeper localhost:2182 --topic testmcdull222666 --replica-assignment 1:3,2:1,3:2

第乙個broker

第二個broker

第三個broker

檢視kafka中topic

展示topic詳細資訊

刪除topic

kafka-topics.bat --zookeeper localhost:2183 --delete --topic testmcdull222333

如果kafaka啟動時載入的配置檔案中server.properties沒有配置"delete.topic.enable=true",那麼此時的刪除並不是真正的刪除,而是把topic標記為刪除:marked for deletion。或者直接從zookeeper中刪除。

徹底刪除topic方式

1、刪除kafka儲存目錄(server.properties檔案log.dirs配置,預設為"/tmp/kafka-logs")相關topic目錄

2、如果配置了delete.topic.enable=true直接通過命令刪除,如果命令刪除不掉,直接通過zookeeper-client 刪除掉broker下的topic即可。

從zookeeper中刪除

(1)登入zookeeper客戶端:命令:./bin/zookeeper-client

(2)找到topic所在的目錄:ls /brokers/topics

(3)找到要刪除的topic,執行命令:rmr /brokers/topics/topicname即可,此時topic被徹底刪除。

Kafka 主題命令列操作

1.主題命令列操作,檢視操作主題命令引數 bin kafka topics.sh引數 描述 bootstrap server 連線的 kafka broker 主機名稱和埠號。topic 操作的 topic 名稱。create 建立主題。delete 刪除主題。alter 修改主題。list 檢視所...

kafka自動建立主題

kafka集群環境搭建完成後,整合到專案開發中,我需要給某個topic傳送訊息,以及監聽消費該topic中的訊息,難道我需要事先用kafka命令先去伺服器建立乙個topic,然後再供專案使用嗎?有沒有我在專案配置檔案裡指定kafka的topic 然後啟動服務的時候,kafka就可以自動幫我建立好呢?...

Kafka刪除主題詳解

在kafka的使用 測試過程中,可能老是會遇到想要刪除某個主題的需求,但是由於對其內部機制不夠了解,總是無法有效的刪除主題。今天這篇文章詳細討論如何徹底的刪除乙個主題。在kafka的broker端的配置引數中有這樣乙個引數 delete.topic.enable,必須將它設定為true才能夠刪除ka...