設定本地Apache Kafka,與Docker強強聯動

2024.02.18

一、引言

許多公司擁有大量的數據,需要一種方法來簡化和轉儲所有傳入數據到不同的位置,這就是所謂的Kafka Sink。

在生產環境中,不建議自己託管Kafka,而是建議支付雲端服務供應商在AWS上進行託管,這就是Amazon Managed Streaming for Apache Kafka(MSK)。然而,Kafka在本地測試卻很不方便。因此,在將其部署到測試或生產環境之前,可以選擇使用Docker在本地快速啟動一個Apache Kafka來開發所需內容。這樣可以更快地進行開發並驗證程式碼,不用擔心環境問題。

二、使用Docker和Docker Compose快速啟動Kafka

1.配置Docker Compose文件

首先,使用Docker和Docker Compose建立運行單節點Kafka的設定。以下是一個範例的Docker Compose檔案:

version: "2"
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - 22181:2181

  kafka:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - 29092:29092
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

2. 檢查Kafka和Zookeeper設定的狀態

完成之後,可以使用以下兩個指令檢查Kafka和Zookeeper設定的狀態。

nc -z localhost 22181
nc -z localhost 29092
  • 1.
  • 2.

如果一切運行順利,這兩個測試都應該返回成功。

三、使用Offset Explorer 2查看Kafka

1. 下載Offset Explorer 2

現在,可以下載Kafka工具(Offset Explorer 2,下載網址:https://kafkatool.com/download.html),它是一個用於Kafka的UI工具,支援以UI方式查看Kafka,不用記住命令列。

2. 配置Offset Explorer 2

下載了工具後,需要進行設定設置,在組態設定中,進入高級選項卡,並將localhost:29092作為引導網關,然後就可以開始使用了!