前言
在使用kafka開發和運維的時候,經常需要進行一些常用的調試操作,比如創建topic,刪除topic,測試從producer發消息給consumer等,這時可以使用kafka提供的常用的命令行工具進行操作,相比可視化工具某些時候可能更有效,下面將列出常用的操作操作命令方便後續運維使用時候查找
1、kafka啓動命令
服務器上安裝完zookeeper並配置好kafka的環境後,進入kafka的bin目錄下
可以看到,在該目錄下保存了許多的以sh結尾的文件,就可以使用這些腳本文件完成對kafka的命令行操作,因此啓動的命令如下:
./bin/kafka-server-start.sh -daemon ./config/server.properties
命令解釋:
- -daemon 以守護進程的方式啓動
- server.properties 啓動時要以這個配置文件進行啓動
由於kafka的啓動是一個Java進程,可以通過jps或者jcmd的方式查看進程
2、創建主題
仍然在bin目錄下執行如下命令:
./kafka-topics.sh --zookeeper localhost:2181 \
--create --topic zcy \
--partitions 3 --replication-factor 1
–zookeeper:指定了Kafka所連接的Zookeeper服務地址
–topic:指定了所要創建主題的名稱
–partitions:指定了分區個數
–replication-factor:指定了副本數
–create:創建主題的動作指令
說明:如果是單節點的kafka,–replication-factor設置的數量大於1的時候會報錯,錯誤信息如下,簡單解釋就是單節點上無法創建更多的副本了,這個和kafka的集羣機制有關,因爲集羣爲了保證數據的高可用性,需要把副本分佈到不同的機器上,這個在es中也有類似的思想
比如我們創建一個名爲zcy-test的topic,分區數爲3,執行之後如下所示
順便貼上刪除主題的命令,需要注意,在生產環境中不要輕易使用刪除的命令,除非確保主題不再使用而且也沒有相關的producer和consumer在操作這個topic了
./kafka-topics --delete --topic zcy --zookeeper localhost:2181
2、展示kafka中所有主題
./kafka-topics.sh --zookeeper localhost:2181 --list
3、查看某個主題的詳情
可以展示出當前的topic的分區數,副本數,集羣中所處的角色,isr信息等
./kafka-topics.sh --zookeeper localhost:2181 --describe --topic zcy
4、啓動消費端的命令行窗口
通過此命令可以快速啓動消費者的命令行窗口,這在開發中很有用處,可以在程序中通過producer的代碼發送消息,看能否在此窗口中正常收到消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic zcy
- –bootstrap-server 指定了連接Kafka集羣的地址
- –topic 指定了消費端訂閱的主題
執行完命令後,會出現一個黑色的阻塞的窗口,剩下的就可以接收生產者發送的消息啦
5、啓動生產者發送消息的命令行窗口
./kafka-console-producer.sh --broker-list localhost:9092 --topic zcy
看到如下窗口說明通過命令行開啓producer端成功
下面我們就可以通過它發消息了,輸入 “hello kafka”,可以看到在consumer的窗口中收到消息了