1
resposta

[Reclamação] DevOps Mensageria/Streams Kafka: produtores, consumidores e streams

façam um turtorial de como instalar no windows, pfv

1 resposta

Olá Jose.
Tudo bem?
Não sei se é exatamente isto que esta procurando mas segue ai:
Para instalar o Apache Kafka no Windows, primeiro instale o Java.
Baixe o Temurin JDK 17 em adoptium.net, instale normalmente e confirme no PowerShell executando:

java -version

Em seguida, faça o download do Kafka em kafka.apache.org/downloads, escolhendo a distribuição binária (ex.: kafka_2.13-3.8.0.tgz).
Extraia o conteúdo para uma pasta, como:

C:\kafka

Abra um PowerShell e inicie o Zookeeper:

cd C:\kafka
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

Deixe essa janela aberta. Abra outra janela do PowerShell e inicie o Kafka:

cd C:\kafka
.\bin\windows\kafka-server-start.bat .\config\server.properties

Para criar um tópico, abra outro PowerShell:

cd C:\kafka
.\bin\windows\kafka-topics.bat --create --topic teste --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

Para listar os tópicos:

.\bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

Para iniciar um produtor:

cd C:\kafka
.\bin\windows\kafka-console-producer.bat --topic teste --bootstrap-server localhost:9092

Digite suas mensagens diretamente nessa tela.
Para iniciar um consumidor:

cd C:\kafka
.\bin\windows\kafka-console-consumer.bat --topic teste --bootstrap-server localhost:9092 --from-beginning

Se quiser usar Kafka Streams com Java, crie o arquivo WordCount.java com este conteúdo:

import org.apache.kafka.common.serialization.Serdes;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.StreamsBuilder;
import org.apache.kafka.streams.StreamsConfig;
import org.apache.kafka.streams.kstream.KStream;

import java.util.Properties;

public class WordCount {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put(StreamsConfig.APPLICATION_ID_CONFIG, "streams-wordcount");
        props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
        props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());
        props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());

        StreamsBuilder builder = new StreamsBuilder();
        KStream<String, String> stream = builder.stream("teste");

        stream
            .flatMapValues(value -> java.util.Arrays.asList(value.toLowerCase().split(" ")))
            .peek((key, value) -> System.out.println("WORD: " + value));

        KafkaStreams streams = new KafkaStreams(builder.build(), props);
        streams.start();
    }
}

Compile o arquivo:

javac -cp "libs/*" WordCount.java

Execute o programa:

java -cp ".;libs/*" WordCount

Para encerrar os serviços, basta fechar as janelas onde o Kafka e o Zookeeper estão sendo executados.
Avise qualquer duvida.
Bons estudos.