文章目錄
如何在 Windows OS 安裝 Apache Kafka
Apache Kafka 是由 LinkedIn 所開發進而 open source 的 message queue 系統,使用 scala 語言打造,具有水平擴展及高吞吐量的特性,因其效能優異而受到不少關注。
因為最近專案有 message queue 的需求所以做了幾個 message queue 的比較,最後 Kafka 憑藉著高效能表現而在網路上的獲得高人氣,也讓 RabbitMQ、ZeroMQ、ActiveMQ 等其他 queue 系統敗下陣來
在還沒實際使用前,最重要的就是建置開發環境,Kafka 當然也不例外,今天就來介紹該如何在 windows 平台中安裝 Kafka
必備軟體
安裝 Zookeeper安裝
解壓縮至硬碟 e.g.
D:\Zookeeper\
設定 config
位置
D:\Zookeeper\conf\
2-1. rename
zoo.sample.cfg
–>zoo.cfg
2-2. 修改 snapshot 儲存位置
dataDir= D:\zookeeper\data
2-3. 預設使用 2181 port
clientPort=2181
設定環境變數
set ZOOKEEPER_HOME = D:\Zookeeper set PATH=%PATH%;%ZOOKEEPER_HOME%\bin;
可以使用
set
列出環境變數的值e.g.
set ZOOKEEPER_HOME
如果無法生效,請嘗試重開機
啟動 zkserver
在 command prompt 直接執行
zkserver
成功結果
安裝 Kafka
解壓縮至硬碟
e.g.
D:\kafka\
修改設定
server.properties
位置
D:\kafka\config\server.properties
2-1. 修改 log 位置
log.dirs=/tmp/kafka-logs
–>d:\kafka\kafka-logs
2-2. 設定 Zookeeper 所在 server ip 及 port
zookeeper.connect=localhost:2181
- 以
,
分隔可以指定多台 - e.g.
127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002
- 以
2-3. 預設使用 9092 port
listeners = security_protocol://host_name:port
- e.g.
listeners = PLAINTEXT://your.host.name:9092
執行 請確認 Zookeeper 已正確啟動中
使用
kafka-server-start.bat
啟動- 指令 :
kafka-server-start.bat server.properties
kafka-server-start.bat
位於Kafka 安裝目錄\bin\windows\
server.properties
位於Kafka 安裝目錄\config\
- e.g.
D:\kafka\bin\windows\kafka-server-start.bat D:\kafka\config\server.properties
- 指令 :
正常執行
測試檢查
建立 topic
- 使用
kafka-topics.bat
指令- 建立
Yowkotest
topic replication factor=1
僅有一台 Kafka- e.g.
"D:\kafka\bin\windows\kafka-topics.bat" --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Yowkotest
- 成功建立
- 建立
- 使用
建立 Producer 及 Consumer 來測試
2-1. 建立 Producer
kafka-console-producer.bat --broker-list localhost:9092 --topic {topicName}
- e.g.
D:\kafka\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic Yowkotest
2-2. 建立 Consumer
kafka-console-consumer.bat --zookeeper localhost:2181 --topic {topicName}
- e.g.
D:\kafka\bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic Yowkotest
發送訊息
其他指令
列出所有 topic
kafka-topics.bat --list --zookeeper localhost:2181
刪除 topic
kafka-run-class.bat kafka.admin.TopicCommand --delete --topic {topicName} --zookeeper localhost:2181
出現
marked for deletion
- 需調整
server.properties
檔案,設定delete.topic.enable = true
- 需調整
讀出所有訊息
kafka-console-consumer.bat --zookeeper localhost:2181 --topic {topicName} --from-beginning
- e.g.
D:\kafka\bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic Yowkotest --from-beginning
- e.g.
參考資料
文章作者 Yowko Tsai
上次更新 2021-11-02
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。