Kafka 2.0課程 8 Console Producer CLI

Console Producer CLI(Command Line Interface)

ZONGRU Li
Jan 13, 2020

在學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

中間略

有兩個必要項目要指定:

  1. broker-list -->指定要連的kafka server
  2. 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會發生什麼事?

一樣可以進到producer console內

正常打些訊息後Enter換行會看到:

出現{new_topic=LEADER_NOT_AVAILABLE}的警告

繼續往下打訊息會發現:

因為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檔

在Log Basics下面

改成3之類的

記得儲存

之後預設就會自動建三個pratition

此時用ctrl+c重啟kafka server

並且用同樣方式建出新的topic叫new_topic_2

參考課程

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet