matheuscarv69 / votes-challenge-kafka-consumer

This project is a Kafka Consumer for back-votes-challenge project.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🚀 Votes Kafka Consumer 📚

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.

GitHub stars Maven Central with version prefix filter

🤔 O que é este projeto?

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.

📑 To-do do Projeto

  • Consumir um tópico do Kafka;
  • Persistir os dados consumidos;
  • Expor um endpoint para expor os dados;

🚀 Executando a aplicação 👾

📍 Local

Se você quiser fazer alguma modificação no código precisará ter instalado em sua máquina as seguintes ferramentas:

🐳 Docker

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:

⬇ 1. Pull

docker pull matheuscarv69/kafka-consumer-back-votes-challenge

🏃‍♂️ 2. Running

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

🎲 Executando a API com o docker-compose

Com esse repositório já clonado em sua máquina e com todos os pré-requisitos atendidos.

  1. Você deve ir até a raiz do projeto onde o arquivo docker-compose.yml está.
  2. Deve abrir um terminal na raiz do projeto.
  3. Agora certifique-se que o seu Docker já está em execução.
  4. Execute o seguinte comando no terminal:
docker-compose up -d
  1. Com isso sua aplicação já está em execução por padrão na porta local 8081

🔧 Variáveis de Ambiente da Aplicação

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)

📝Fazendo requisições - Insomnia

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.

Run in Insomnia}

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:

swagger

📡 Integrações externas 📶

🚀 Back Votes Challenge 📚

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

🚀 Tecnologias 👩‍🚀

As seguintes tecnologias foram utilizadas no desenvolvimento do projeto.

  • Java 11
  • Spring Boot 2.5.4
    • Web
    • Data JPA
  • Swagger
  • H2 Database
  • Kafka

👨🏻‍💻 Autor



Matheus Carvalho
🚀

Feito por Matheus Carvalho, entre em contato!✌🏻

About

This project is a Kafka Consumer for back-votes-challenge project.


Languages

Language:Java 96.2%Language:Dockerfile 3.8%