Skip to main content

Watcher 和 Node-RED 到 Kafka 快速入门

第一部分:什么是 Kafka

Apache Kafka 是一个分布式事件流平台,专为高吞吐量、容错的数据处理而设计。它通过允许生产者将消息发布到主题,同时消费者可以订阅这些主题来处理数据,从而实现实时数据流。Kafka 广泛用于构建数据管道、实时分析和集成各种数据源。其强大的架构确保了可扩展性和持久性,使其成为现代数据驱动应用程序的热门选择。

第二部分:在 Docker 中构建 Kafka 集群

为什么使用 Docker?因为 Docker 可以在单台机器上模拟多台计算机的环境,并且可以非常轻松地部署应用程序。因此,在这个项目中,我们将使用 Docker 来设置环境并提高效率。

步骤 1:下载 Docker

根据您的计算机下载不同类型的安装程序。点击这里跳转。

tip

如果您的计算机是 Windows,请在完成步骤 2之前不要安装 docker。

步骤 2:安装 WSL(Windows 子系统 for Linux)

tip

此步骤适用于 Windows。如果您的计算机是 Mac 或 Linux,可以跳过此步骤。

  1. 以管理员身份运行以下代码。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 这里下载此工具并双击安装。

  2. 前往您的Microsoft Store搜索并下载您喜欢的linux版本,这里我安装了Ubuntu。

  1. 安装Linux后,您需要打开它并设置您的用户名和密码,然后需要等待一分钟进行初始化。
  1. 运行以下指令来使用WSL
  1. 安装WSL后,现在您可以双击docker安装程序来安装它。当您看到以下图像时,说明它正在工作。

步骤3.构建Kafka镜像并运行

  1. 找一个地方创建docker-compose.yml文件并将以下代码复制到其中。
services:
zookeeper:
image: wurstmeister/zookeeper ## image
container_name: zookeeper
ports:
- "2181:2181" ## Externally exposed port number
kafka:
image: wurstmeister/kafka ## image
container_name: kafka
volumes:
- ./volume:/volume ## Mounting location
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 ## Host machine IP
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ## Running Kafka is base to zookeeper
KAFKA_ADVERTISED_PORT: 9092
KAFKA_LOG_RETENTION_HOURS: 120
KAFKA_MESSAGE_MAX_BYTES: 10000000
KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
KAFKA_NUM_PARTITIONS: 3
KAFKA_DELETE_RETENTION_MS: 1000
kafka-manager:
image: sheepkiller/kafka-manager ## image: open source web manage interface about kafka cluster
container_name: kafka-manager
environment:
ZK_HOSTS: 127.0.0.1 ## host machine IP
ports:
- "9009:9000" ## exposed port
  1. 在容器中运行 Kafka 并进入容器
docker-compose up -d

docker exec -it kafka /bin/bash
  1. 创建一个新主题,生产一些内容并消费一些内容。测试 Kafka 是否正常工作。
kafka-topics.sh --create --topic watcher --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1

kafka-console-producer.sh --topic=watcher --broker-list kafka:9092

kafka-console-consumer.sh --bootstrap-server kafka:9092 --from-beginning --topic watcher

第3部分:在Node-RED中运行Kafka消息模块

步骤4. 安装Kafka消息模块

  1. 点击管理调色板。如果您还没有安装Node_RED,请点击这里
  1. 搜索kafka-manager并安装它

步骤5. 配置Kafka消息模块

  1. 将这些模块(inject、kafka producer、kafka consumer、debug)拖拽到工作区
  1. 双击Kafka Producer来配置它。当您执行步骤3时,您应该添加一个新的代理
  1. 双击Kafka Consumer按如下方式配置它。
  1. 完成配置后,点击部署按钮来部署它。
tip

任何更改,您都应该点击部署按钮。

  1. 点击方形按钮发送时间戳来测试整个过程是否正常工作。如果工作正常,您应该在kafka consumer端接收到时间戳。

第4部分:在Watcher中运行任务

  1. 首先,您需要按照下面的视频在Watcher中运行任务。如果您想了解更多,请点击这里
  1. 当您完成在watcher中运行任务后,您应该参考此链接将watcher消息发送到Node-RED。

第5部分:在Kafka中接收数据

  1. timestamp模块替换为OpenStreamfunction模块,双击配置它们。记住要部署它。
node.send({ payload: msg.payload.value[0].content });

node.send({ payload: msg.payload.value[0].image_url });
  1. 我在 Watcher 中运行了一个人员检测模型。因此,当 Watcher 检测到人员时会向 Kafka 发送消息,当您打开链接时就能看到照片。

恭喜您完成了 watcher 到 Kafka 的应用!Kafka 中有大量有用的功能等待您去探索。继续保持出色的工作,深入探索前方令人兴奋的可能性!

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...