Este projeto trata-se de um Kafka Consumer para o desafio da South System, ele consiste basicamente em uma API para realizar o consumo de um tópico do Kafka que é produzido pela API Back Votes Challenge. As tecnologias usadas para isso foram Java, Spring Boot, H2 Database, Kafka e Swagger.
Esse projeto foi desenvolvido para ser um Kafka Consumer para consumir um tópico do Kafka referente ao resultado das votações, persisti-lo e disponibilizar um endpoint para consulta desses dados.
- Consumir um tópico do Kafka;
- Persistir os dados consumidos;
- Expor um endpoint para expor os dados;
Se você quiser fazer alguma modificação no código precisará ter instalado em sua máquina as seguintes ferramentas:
Este projeto conta com um docker-compose, inclusive a própria imagem da aplicação já está configurada para ser executada no docker.
Os requisitos para isso são:
- Docker - Baixe de acordo com o seu SO
- Docker-compose - Se estiver utilizando Windows, o Docker desktop já possui o docker-compose instalado
A imagem da aplicação também está disponível no Docker Hub:
Caso queria executa-lá através dessa imagem, abaixo tem alguns comandos que podem lhe ajudar:
docker pull matheuscarv69/kafka-consumer-back-votes-challenge
O comando abaixo executa a imagem baixada em um container, essa aplicação possui algumas env vars, atenção para as que possuem o sufixo HOST, neste você deve colocar o ipv4 da sua máquina.
docker run -d -p 8081:8081 -e SERVER_PORT=8081 -e KAFKA_HOST=192.168.0.115:29092 matheuscarv69/kafka-consumer-back-votes-challenge
Com esse repositório já clonado em sua máquina e com todos os pré-requisitos atendidos.
- Você deve ir até a raiz do projeto onde o arquivo docker-compose.yml está.
- Deve abrir um terminal na raiz do projeto.
- Agora certifique-se que o seu Docker já está em execução.
- Execute o seguinte comando no terminal:
docker-compose up -d
- Com isso sua aplicação já está em execução por padrão na porta local 8081
ENV_VARS | Descrição |
---|---|
SERVER_PORT | Porta que a aplicação utilizará em sua execução. (Default: 8081) |
KAFKA_HOST | Url do Kafka. (Default: localhost: 29092) |
Essa aplicação tem um workspace compartilhado com o projeto Back Votes Challenge com todas as requisições disponíveis configurado no aplicativo Insomnia, clicando no botão abaixo você pode baixar o workspace de requests utilizados nesse projeto.
A pasta com as Requests desse projeto é chamada Kafka Consumer.
Além disso a mesma foi documentada usando o Swagger, por meio dele você também pode ter acesso as requisições e aos modelos de dados recebidos e enviados pela aplicação. Com a aplicação sendo executada, você pode acessar a página do Swagger por meio da url abaixo.
http://localhost:8081/api/v1/resultsconsumer/swagger-ui/#/
Você acessará essa tela:
Essa é uma API que foi desenvolvida para ser o Kafka Producer para está consumir, no link abaixo você pode acessar toda a documentação e à aplicação.
https://github.com/matheuscarv69/back-votes-challenge
As seguintes tecnologias foram utilizadas no desenvolvimento do projeto.
- Java 11
- Spring Boot 2.5.4
- Web
- Data JPA
- Swagger
- H2 Database
- Kafka
Matheus Carvalho 🚀
Feito por Matheus Carvalho, entre em contato!✌🏻