Kafdrop是Apache Kafka的開源Web UI視覺化介面 - Emil Koutanov

banq發表於2019-12-12

作為訊息傳遞平臺,Kafka無需介紹。自成立以來,它實際上重寫了有關事件流的書,並促進了現在的家庭設計模式的採用-微服務,事件源和CQRS。

作為一個天賜之物,它幾乎以其臭名昭著的缺乏工具而擺脫了。您將很難找到一個曾經沒有看過內建CLI工具。

隨著Kafka的流行,不足為奇的是,幾家商業供應商抓住了通過提供自己的工具將Kafka明顯缺乏工具貨幣化的機會。Kafka Tool,Landoop和KaDeck是一些示例,但是除非您願意付款,否則它們都僅供個人使用。在商業環境中進行任何不平凡的使用都會違反其許可條款。在家裡使用它們進行教程或個人專案是一回事;如果您使用未經適當許可的商業工具,則會使您的僱主面臨訴訟的風險,並在您的職業生涯中玩俄羅斯輪盤賭。

當談到Kafka主題檢視器和Web UI時,首選的開源工具是Kafdrop。在撰寫本文時,有了80萬個Docker拉動,並沒有多少Kafka工具享有這種採用水平。這是有原因的:Kafdrop出色地填補了Kafka的可觀察性工具中的明顯空白,解決了社群已經指出了太久的問題。

Kafdrop是Apache 2.0許可的專案,就像Apache Kafka本身一樣。因此,它不會花費您一分錢。如果您尚未使用過,則可能應該使用。因此,讓我們更深入地瞭解一下。

它能做什麼?

  • 檢視Kafka代理 -主題和分割槽分配以及控制器狀態
  • 檢視主題 -分割槽數,複製狀態和自定義配置
  • 瀏覽訊息 -JSON,純文字和Avro編碼
  • 檢視消費者組 -每個分割槽的停放偏移量,合併延遲和每個分割槽滯後
  • 建立新主題
  • 檢視ACL

Github:https://github.com/obsidiandynamics/kafdrop

這是一個Java(JDK 11)Spring Boot專案,如果已​​安裝JDK,則可以使用單個Maven命令進行構建。如果您想走這條路,倉庫的README.md檔案將指導您完成這些步驟。現在,讓我們以簡單的方式-Docker。(我肯定會的。)

啟動Kafdrop

Docker映像託管在DockerHub上。影象帶有Kafdrop發行編號標記。該latest標籤指向最新的穩定版本。

要在前臺啟動容器,請執行以下命令:

docker run -it --rm -p 9000:9000 \
    -e KAFKA_BROKERCONNECT=<host:port,host:port> \
    obsidiandynamics/kafdrop

AFKA_BROKERCONNECT環境變數必須設定為broker的引導列表。

而已。我們應該啟動並執行。一旦啟動,您可以通過導航到localhost:9000來啟動Kafka Web UI 。

注意:上面的示例假定通過明文TCP套接字進行了身​​份驗證連線。如果您的群集配置為使用身份驗證和/或傳輸級加密,請參閱的README.md連線選項。實際上,為SASL / SSL鎖定群集配置Kafdrop非常容易。

在Kafka沙箱中執行

沒有執行Kafka broker?別擔心。只需使用以下docker-compose.yaml檔案啟動Kafka + Kafdrop堆疊:

version: "2"
services:
  kafdrop:
    image: obsidiandynamics/kafdrop
    restart: "no"
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "kafka:29092"
    depends_on:
      - "kafka"
  kafka:
    image: obsidiandynamics/kafka
    restart: "no"
    ports:
      - "2181:2181"
      - "9092:9092"
    environment:
      KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"
      KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka:29092,EXTERNAL://localhost:9092"
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"
      KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"

現在使用docker-compose up來啟動堆疊。啟動後,瀏覽至localhost:9000

更多使用說明見:https://towardsdatascience.com/kafdrop-e869e5490d62

相關文章