Skip to content

deyviddfs/kafka-streams

Repository files navigation

Kafka Stream

Descrição

Exemplo de implementação de um micro serviço de stream utilizando a biblioteca Kafka Stream e Spring Boot.

GitHub branch checks state GitHub last commit GitHub contributors Twitter URL

Índice

Como Usar

#Pré Requesitos

  • Java 14
  • Docker instalado

#Subindo Aplicação

  • Clonar repositório
  • Navegar até a pasta do arquivo docker-compose.yml
  • Rodar comando docker-compose up -d
  • Validar se foi tudo criado e está UP com o comando docker-compose ps
  • Abrir o projeto cliente-producer
  • Subir as duas aplicações através da classe SpringApplication
  • Abrir o projeto cadastro-consumer
    • Se subir a aplicação KstreamApplication, o resultado será uma aplicação que faz join de dois tópicos.
    • Se subir a aplicação KafkaStreamApplicationGenericAvroSerde, o resultado será uma aplicação lê todos os tópicos, para facilitar os teste.

Testes

  • 1- Fazer uma requisição POST para o endpoint cliente

    curl --location --request POST 'http://localhost:8080/cliente/' \ --form 'id="1"' \ --form 'nome="Bruno Siqueira"' \ --form 'idade="39"'

  • Fazer uma segunda requisição POST para o endpoint cliente/email

    curl --location --request POST 'http://localhost:8080/cliente/email' \ --form 'clienteId="1"' \ --form 'email="email@email.com"'

  • Resultado esperado é produzir uma mensagem unificando os dados das duas requisições, ou seja os dados do cliente com um e-mail (Somente se clientId for igual Id do recurso cliente), no tópico STREAMS.CUSTOMER.EMAIL, uma forma de validar é exeutando o seguinte comando:

    docker exec -ti broker ../../bin/kafka-console-consumer --bootstrap-server localhost:9092 --topic STREAMS.CUSTOMER.EMAIL --from-beginning

  • 2 - O Arquivo kafka-stream.postman_collection.json contém os exemplos das chamada

Status

🚧 kafka - Em construção... 🚧

About

Exemplo de implementação do Kafka Streams

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages