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.
#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
-
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