Kafka 2.0課程 8 Console Producer CLI
在學Topics指令前請先確認以下兩個伺服器皆運作中
啟動zookeeper server:
zookeeper-server-start.bat D:\Kafka2\kafka_2.12–2.4.0\config\zookeeper.properties
啟動kafka server:
kafka-server-start.bat D:\Kafka2\kafka_2.12–2.4.0\config\server.properties
學習基本producer指令可透過producer console
進入producer console基本指令如下:
kafka-console-producer
會顯示指令不完整,但是會提示那些是必要輸入的項目提示doc
中間略
有兩個必要項目要指定:
- broker-list -->指定要連的kafka server
- topic -->指定的topic名稱
首先我們確認kafka server port是9092 port
現有的topic有以下:
改輸入如下完整指令:
kafka-console-producer --broker-list 127.0.0.1:9092 --topic first_topic
並進到console狀態:
隨便打一些訊息
另外在理論筆記2那邊,producer還有個property設定叫ack
(詳Kafka 2.0課程 3)
我們也可以透過指令直接給予ack設定,範例如下:
kafka-console-producer --broker-list 127.0.0.1:9092 --topic first_topic --producer-property acks=all
另外如果指定一個不存在的topic會發生什麼事?
正常打些訊息後Enter換行會看到:
繼續往下打訊息會發現:
因為kafka在第一次就會幫忙見預設型的topic
透過describe指令觀看這個新topic設置
kafka-topics --zookeeper 127.0.0.1:2181 --topic new_topic --describe
見到上圖很可憐的只有一個Partition數、一個ReplicationFactor
所以一般情況
請自己建立topic 不要依賴kafka幫你生成!!!
若還是需要自動生成的topic,至少也要一定數量的Partition數等設置
所以要改default設置
修改config內的server.properties檔
改成3之類的
之後預設就會自動建三個pratition
此時用ctrl+c重啟kafka server
並且用同樣方式建出新的topic叫new_topic_2