Kafdrop是Apache Kafka的开源Web UI可视化界面 - Emil Koutanov

19-12-12 banq

作为消息传递平台,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

    

1
猜你喜欢