/SpringRabbitMQ

Este projeto foi criado com objetivo de definir uma plataforma escalável e performática, foram criados dois módulos e uma lib interagindo com o RabbitMQ.

Primary LanguageJava

Projeto Principal Spring RabbitMQ

Descrição do Projeto

Este é um projeto que tem como objetivo fornecer uma API para efetuar operações matemáticas.

Requisitos Funcionais:

  • REST API que expõe as operações de soma, subtracção, multiplicação e divisão.
  • Suporte para dois operandos apenas (a e b).

Requisitos Não Funcionais:

  • Maven
  • Resiliência, integração entre os módulos fazendo uso do RabbitMQ
  • Escalável, ambiente docker, permitindo escala horizontal

Módulos

obs. Clique em cada um dos módulos para descrição e detalhe de cada um.

Sobre o projeto

  • Linguagem: Java JDK 11
  • Framework: Spring Boot 2.6.4
  • Build usando Docker e Docker-Compose

Preparar ambiente de desenvolvimento

  1. Clonando projeto

    • No terminal:
    git clone git@github.com:haganicolau/SpringRabbitMQ.git
  1. Buildando e executando projeto

    • No terminal:
    docker-compose up --build
  1. Testando a aplicação
    • Acessse o arquivo do Insomnia que se encontra no diretório: doc/insomnia/Insomnia.json. Importe e execute os testes.

Acesso a Logs

Ao executar o projeto a partir da imagem docker é criado uma pasta de logs, sendo para cada projeto:

  • .SpringRabbitMQ/logs/engineModule: Logs do módulo engineModule
  • .SpringRabbitMQ/logs/restModule: Logs do módulo restModule

Ao ser executado fora do container em uma IDE (por exemplo), os projetos podem ser executados separados, portanto é criado uma pasta /logs é para cada projeto.

  • .SpringRabbitMQ/engineModule/logs: Logs do módulo engineModule
  • .SpringRabbitMQ/restModule/logs: Logs do módulo restModule

Docs

Arquivo Insomna

obs.: Importe o aquivo do insomina, para fazer os testes de API.

Diagrama de Implantação

Diagrama de Sequencia Rest Modulo

Diagrama de Sequencia Engine Modulo

Diagrama de Sequencia Compute Vote Modulo