本文將說明如何使用 Node.js 串接 Apache Kafka Broker,並傳送模擬資料至特定的 Topic;如果對 Kafka 介紹、安裝或使用方式還不了解的朋友,可以參考之前寫的文章 【 Apache Kafka 簡介 】、【 使用 Docker 在 AWS EC2 建立 Kafka 】 使用教學。
學習目標
- 使用 Node.js 建立 Producer 與 Consumer 兩個角色,並透過 Kafka Broker 進行訊息通訊
前置準備作業
一台能上網的電腦且已完成 v10 版本以上的 Node.js 安裝
已建立完成 Apache Kafka
Kafka Client 端
Step 1. 下載 Producer 與 Consumer
❖ Producer 下載網址
㊟ 在此程式命名為 BasicProducer.js
https://raw.githubusercontent.com/ArcherHuang/Kafka/master/Code/Node.js/BasicProducer.js
❖ Consumer 下載網址
㊟ 在此程式命名為 BasicConsumer.js
https://raw.githubusercontent.com/ArcherHuang/Kafka/master/Code/Node.js/BasicConsumer.js
Step 2. 安裝 kafka 套件
❖ 於終端機 【 macOS、Ubuntu 】或 PowerShell 【 Windows 】中輸入下方指令
npm install kafka-node
Step 3. 取得 Kafka IP
❖ ① 點選左側的 【 Instances 】
② IP 位於【 IPv4 Public IP 】欄位中
Step 4. Hosts 檔設定
- macOS、Ubuntu
❖ 於終端機 【 macOS 】中輸入下方指令
① sudo vim /etc/hosts
❖ 於終端機 【 macOS 】中輸入下方指令
② 按 【 i 】
❖ 於終端機 【 macOS 】中輸入下方指令
③ 在最後一行輸入 Kafka IP 資訊
❖ 於終端機 【 macOS 】中輸入下方指令
④ 按 【 esc 】鍵
❖ 於終端機 【 macOS 】中輸入下方指令
⑤ 輸入【 :wq! 】存檔離開
- Windows
❖ ① 透過檔案總管切換路徑到 【 C:\Windows\System32\drivers\etc 】
❖ ② 透過記事本等文字編輯軟體開啟【 hosts 】檔案
❖ ③ 在最後一行輸入 Kafka IP 資訊
❖ ④ 將新的 hosts 檔案另存新檔於別的目錄中,在用滑鼠拖進系統的 【 C:\Windows\System32\drivers\etc 】 目錄中
㊟ 設定檔是屬於系統的檔案,一般的使用者沒有權限修改
Step 5. 修改 zookeeper IP
❖ 修改【 BasicProducer.js 】第 18 行的 IP 位置
❖ 修改【 BasicConsumer.js 】第 7 行的 IP 位置
Step 6. 啟動程式
❖ 啟動【 BasicProducer.js 】
㊟ 以下範例使用 Windows PowerShell 做說明
❖ 啟動【 BasicConsumer.js 】
㊟ 以下範例使用 Windows PowerShell 做說明