Skip to content

deyviddfs/kafka-schema-registry

Repository files navigation

Kafka Schema Registry

Descrição

Exemplo de implementação de um micro serviço produtor e um consumidor de mensagens para o kafka utilizando o Schema Registry 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 formulario-producer
  • Se alterar o schema disponível no caminho formulario-producer/src/main/resources/avro-schema.avsc
    • Rodar o comando mvn compile para gerar as classes Avro
  • Copiar a classes geradas para o projeto cadastro-consumer/src/java
  • Subir as duas aplicações através da classe SpringApplication

Testes

  • 1- Fazer uma requisição POST

    curl --location --request POST 'http://localhost:8080/cliente/' \ --form 'id="1"' \ --form 'nome="Deyvid Fernandes"' \ --form 'idade="33"'

  • Resultado esperado é produzir uma mensagem no formato json no tópico DEV.CLIENTE, uma forma de validar é exeutando o seguinte comando:

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

  • 2 - Listar todos os tópicos com schema definido

    curl --location --request GET 'http://localhost:8081/subjects'

  • 3 - Retornar a versão 1 do schema do tópico DEV.CUSTOMER

    curl --location --request GET 'http://localhost:8081/subjects/DEV.CUSTOMER-value/versions/1'

  • 4 - Listar todos os schemas

    curl --location --request GET 'http://localhost:8081/schemas'

  • 5 - O Arquivo kafka-schema-registry.postman_collection.json contém os exemplos das chamada

Status

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

About

Exemplo de implementação do Kafka Schema Registry

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages