Skip to content

Latest commit

 

History

History
80 lines (54 loc) · 2.39 KB

File metadata and controls

80 lines (54 loc) · 2.39 KB

Spring Microservices

Descrição do Projeto

Projeto com infraestrutura base de um sistema de microserviços.


Tecnologias Utilizadas

Core

  • Java 21
  • Spring Boot 4.0.2
  • Maven — gerenciamento de dependências e build

Spring Cloud

  • Spring Cloud Gateway — API Gateway (roteamento, proxy reverso)
  • Netflix Eureka Server — servidor de descoberta de serviços
  • Netflix Eureka Client — registro dos microserviços no Eureka
  • Spring Cloud OpenFeign — cliente HTTP declarativo (comunicação entre pagamento e pedidos)

Persistência e API

  • Spring Data JPA — acesso a dados
  • Spring Web MVC — APIs REST
  • Bean Validation — validação de entrada
  • Flyway — migrações de banco (incl. flyway-mysql)
  • MySQL — banco de dados (driver mysql-connector-j)

Utilitários e Resiliência

  • Lombok — redução de boilerplate (getters, setters, etc.)
  • ModelMapper — mapeamento entre DTOs e entidades
  • Resilience4j — resiliência (circuit breaker, retry, etc.) no serviço de pagamento
  • Spring AOP — suporte a aspectos (usado com Resilience4j)

Testes

  • Spring Boot Test — testes de aplicação
  • Spring Boot Starters de teste — JPA, Flyway, Validation, WebMvc (test)

Arquitetura

Serviço Função
server Servidor Eureka — descoberta e registro de serviços
gateway API Gateway — ponto único de entrada e roteamento
pedidos Microserviço de gestão de pedidos
pagamento Microserviço de pagamentos (integra com pedidos)

Como executar

  1. Requisitos: Java 21, Maven, MySQL em execução.

  2. Banco de dados: Crie os bancos e usuários necessários para os serviços pedidos e pagamento e configure as URLs em application.properties de cada um.

  3. Ordem sugerida de subida:

    • server (Eureka)
    • gateway
    • pedidos
    • pagamento
  4. Build e execução por serviço (exemplo):

    cd server && mvn spring-boot:run
    cd gateway && mvn spring-boot:run
    cd pedidos && mvn spring-boot:run
    cd pagamento && mvn spring-boot:run
  5. Consulte os application.properties de cada módulo para portas e URLs do Eureka/MySQL.