iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

CLI 核心工具

  • 管理主題: kafka-topics --bootstrap-server localhost:9092 --create --topic my-topic --partitions 3
  • 發送數據: kafka-console-producer --bootstrap-server localhost:9092 --topic my-topic
  • 接收數據: kafka-console-consumer --bootstrap-server localhost:9092 --topic my-topic --from-beginning

GUI 輔助工具:Offset Explorer

雖然 Offset Explorer 的介面呈現出一種「經典的 Java 風格」(較為陳舊),但它在視覺化監控分區偏移量與消息內容方面的功能依然是不可或缺的。它能讓架構師快速診斷消息是否積壓或格式是否錯誤。

  1. 應用層整合:Node.js 與 AI 協作開發

在微服務端,我們推薦使用 kafkajs 庫配合現代包管理器 pnpm。

開發流程

  1. 初始化: pnpm init 並安裝 pnpm add kafkajs。
  2. 生產者邏輯: 實例化 Kafka 客戶端,調用 producer.send() 投遞 JSON 事件。
  3. 消費者邏輯: 配置 groupId,使用 consumer.run() 異步監聽並處理消息。

AI 協作與驗證: 利用 GitHub Copilot 輸入 // Kafka Producer example with kafkajs 可快速生成範本。最關鍵的步驟是端到端驗證: 打開一個終端機運行 kafka-console-consumer,然後執行 Node.js 生產者腳本。在「分屏模式」下實時看到消息湧入終端機,才是確保通訊成功的唯一標準。

  1. 進階實踐:使用 Docker Compose 構建三節點 Kafka 集群

為了模擬生產環境的容錯機制,我們必須構建多 Broker 集群。

三節點集群編排邏輯

在 docker-compose.yml 中,我們定義三個 Kafka 服務實例,並進行精確的端口映射以避免衝突:

  • Broker 1: 端口 9092
  • Broker 2: 端口 9094
  • Broker 3: 端口 9096
  • Kafka UI: 映射至 8080 端口,提供 Web 化管理介面。

關鍵配置:

  • Volumes: 將容器內的數據掛載至宿主機目錄(如 ./data/kafka1),確保容器刪除後數據不丟失。
  • Networks: 建立專屬內部網路,確保 Broker 間同步數據時的高帶寬與低延遲。

驗證與總結

啟動指令:docker-compose up -d 驗證指令:docker-compose ps

透過這套架構,我們不僅實現了服務解耦,更獲得了極高的系統韌性。從 Kafka 4.0.0 的 Zookeeper-less 變革,到生產者/消費者組的靈活運用,Kafka 始終是構建高併發分散式系統的核心首選。掌握這套全指南,將助你從容應對海量數據流的挑戰。


上一篇
補充資料 1-2: kafka 實作指南
下一篇
day 5 : K8S 群落節點管理服務與生活結合的計劃
系列文
30 天打造我的個人雲端實驗室:用 Docker、Kubernetes、Flyte 和自建服務,重構手機與電腦的日常工作流8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言