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,可以跳过此步骤。
- 以管理员身份运行以下代码。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
从这里下载此工具并双击安装。
-
前往您的Microsoft Store搜索并下载您喜欢的linux版本,这里我安装了Ubuntu。

- 安装Linux后,您需要打开它并设置您的用户名和密码,然后需要等待一分钟进行初始化。

- 运行以下指令来使用WSL。

- 安装WSL后,现在您可以双击docker安装程序来安装它。当您看到以下图像时,说明它正在工作。

步骤3.构建Kafka镜像并运行
- 找一个地方创建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
- 在容器中运行 Kafka 并进入容器
docker-compose up -d
docker exec -it kafka /bin/bash

- 创建一个新主题,生产一些内容并消费一些内容。测试 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消息模块
- 点击管理调色板。如果您还没有安装Node_RED,请点击这里。

- 搜索kafka-manager并安装它

步骤5. 配置Kafka消息模块
- 将这些模块(inject、kafka producer、kafka consumer、debug)拖拽到工作区

- 双击Kafka Producer来配置它。当您执行步骤3时,您应该添加一个新的代理。

- 双击Kafka Consumer按如下方式配置它。


- 完成配置后,点击部署按钮来部署它。

tip
任何更改,您都应该点击部署按钮。
- 点击方形按钮发送时间戳来测试整个过程是否正常工作。如果工作正常,您应该在kafka consumer端接收到时间戳。

第4部分:在Watcher中运行任务
- 首先,您需要按照下面的视频在Watcher中运行任务。如果您想了解更多,请点击这里。
- 当您完成在watcher中运行任务后,您应该参考此链接将watcher消息发送到Node-RED。
第5部分:在Kafka中接收数据
- 将timestamp模块替换为OpenStream和function模块,双击配置它们。记住要部署它。
node.send({ payload: msg.payload.value[0].content });
node.send({ payload: msg.payload.value[0].image_url });

- 我在 Watcher 中运行了一个人员检测模型。因此,当 Watcher 检测到人员时会向 Kafka 发送消息,当您打开链接时就能看到照片。

恭喜您完成了 watcher 到 Kafka 的应用!Kafka 中有大量有用的功能等待您去探索。继续保持出色的工作,深入探索前方令人兴奋的可能性!
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。