Guia Rápido: Watcher & Node-RED para Kafka

Parte 1. O que é o Kafka
Apache Kafka é uma plataforma distribuída de streaming de eventos projetada para processamento de dados com alta taxa de transferência e tolerância a falhas. Ela permite fluxos de dados em tempo real, permitindo que produtores publiquem mensagens em tópicos, enquanto consumidores podem assinar esses tópicos para processar os dados. Kafka é amplamente utilizado para construir pipelines de dados, análises em tempo real e integração de várias fontes de dados. Sua arquitetura robusta garante escalabilidade e durabilidade, tornando-o uma escolha popular para aplicações modernas orientadas a dados.
Parte 2. Construir um cluster Kafka no Docker
Por que usar Docker? Porque o Docker pode simular o ambiente de vários computadores em uma única máquina e implantar aplicações com grande facilidade. Portanto, neste projeto, usaremos o Docker para configurar o ambiente e melhorar a eficiência.
Passo 1. Baixar o Docker
De acordo com o seu computador, baixe o tipo de instalador correspondente. Clique aqui para ir.

Se o seu computador é Windows, não instale o Docker até concluir o Passo 2.
Passo 2. Instalar o WSL (Windows Subsystem for Linux)
Este passo é para Windows. Você pode pular este passo se o seu computador for Mac ou Linux.
- Execute o código a seguir como administrador.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
Baixe esta ferramenta aqui e clique duas vezes para instalá-la.
-
Vá até a Microsoft Store para buscar e baixar a versão de Linux que você quiser, aqui eu instalei Ubuntu.

- Depois de instalar o Linux, você precisa abri-lo e definir seu nome de usuário e senha, e então aguardar um minuto para inicializar.

- Execute os seguintes comandos para usar o WSL.

- Após instalar o WSL, agora você pode clicar duas vezes no instalador do Docker para instalá-lo. Quando você vir a imagem a seguir, isso significa que ele está funcionando.

Passo 3. Construir a imagem do Kafka e executar
- Encontre um local para criar o arquivo docker-compose.yml e copie os códigos a seguir para dentro dele.

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
- Execute o Kafka no contêiner e acesse-o
docker-compose up -d
docker exec -it kafka /bin/bash

- Crie um novo tópico, produza algo e consuma algo. Para testar se o Kafka funciona bem.
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

Parte 3. Executar o módulo de mensagens Kafka no Node-RED
Passo 4. Instalar o módulo de mensagens Kafka
- Clique em Manage palette. Se você ainda não instalou o Node-RED, clique aqui.

- Pesquise por kafka-manager e instale-o

Passo 5. Configurar o módulo de mensagens Kafka
- Arraste esses módulos (inject, kafka producer, kafka consumer, debug) para o espaço de trabalho

- Clique duas vezes em Kafka Producer para configurá-lo. Quando fizer o passo 3, você deve adicionar um novo broker.

- Clique duas vezes em Kafka Consumer para configurá-lo como abaixo.


- Quando terminar a configuração, clique no botão Deploy para implantá-la.

Sempre que houver qualquer alteração, você deve clicar no botão Deploy.
- Clique no botão quadrado para enviar um carimbo de data/hora e testar se todo o processo funciona. Se funcionar bem, você deverá receber o carimbo de data/hora no lado do kafka consumer.

Parte 4. Executar uma tarefa no Watcher
- Antes de tudo, você precisa executar uma tarefa no Watcher seguindo o vídeo abaixo. Se quiser saber mais, clique aqui.
- Quando você terminar de executar uma tarefa no Watcher, você deve consultar este link para enviar a mensagem do Watcher para o Node-RED.
Parte 5. Receber dados no Kafka
- Substitua o módulo timestamp pelos módulos OpenStream e function e clique duas vezes para configurá-los. Lembre-se de fazer o Deploy.
node.send({ payload: msg.payload.value[0].content });
node.send({ payload: msg.payload.value[0].image_url });

- Eu executo um modelo de People Detection no Watcher. Então o Watcher enviará mensagens para o Kafka quando detectar pessoas e você verá a foto ao abrir o link.

Parabéns por concluir a aplicação de Watcher para Kafka! Há uma grande variedade de recursos úteis no Kafka esperando para você explorar. Continue com o ótimo trabalho e mergulhe nas empolgantes possibilidades à frente!
Suporte Técnico & Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.