athlos-hub /
athlos-hub
Arquitetura de Microserviços para gestão escalável de campeonatos esportivos (FastAPI, SpringBoot, PostgreSQL, Keycloak)
35/100 healthLoading repository data…
RaphaelMun1z / repository
Arquitetura de microserviços escalável com Spring Cloud e Java. Implementa padrões distribuídos incluindo API Gateway, descoberta de serviços com Eureka, Config Server centralizado, e múltiplos serviços especializados. Demonstra comunicação entre serviços, balanceamento de carga e orquestração containerizada com Docker.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Implementação escalável de uma arquitetura de microserviços distribuídos, demonstrando padrões empresariais modernos e melhores práticas de comunicação entre serviços.
Arquitetura de microserviços escalável construída com Spring Cloud e Java 25, implementando padrões distribuídos essenciais para sistemas empresariais. O projeto demonstra como orquestrar múltiplos serviços independentes, gerenciar descoberta de serviços, centralizar configurações e monitorar comunicação entre componentes.
Selected from shared topics, language and repository description—not editorial ratings.
athlos-hub /
Arquitetura de Microserviços para gestão escalável de campeonatos esportivos (FastAPI, SpringBoot, PostgreSQL, Keycloak)
35/100 healthedielson-assis /
BookRate é uma aplicação desenvolvida em Java e Spring Boot, utilizando a arquitetura de microserviços. Este projeto conta com uma aplicação dockerizada que pode ser facilmente executada usando Docker Compose.
53/100 healthlchernicharo /
Java 25+
Maven 3.8+
Docker 24+
Docker Compose 2.20+
MySQL 9.3.0 (ou use Docker)
Git
# Configurações Gerais
SPRING_PROFILES_ACTIVE=dev
# Eureka (Service Discovery)
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://localhost:8761/eureka
# Zipkin (Distributed Tracing)
SPRING_ZIPKIN_BASEURL=http://localhost:9411
SPRING_ZIPKIN_ENABLED=true
# Database - Book Service
SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3310/book_service
SPRING_DATASOURCE_USERNAME=user
SPRING_DATASOURCE_PASSWORD=password
# Database - Exchange Service
SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3308/exchange_service
SPRING_DATASOURCE_USERNAME=user
SPRING_DATASOURCE_PASSWORD=password
# API Gateway
SPRING_CLOUD_GATEWAY_ROUTES_0_ID=book-service
SPRING_CLOUD_GATEWAY_ROUTES_0_URI=lb://BOOK-SERVICE
SPRING_CLOUD_GATEWAY_ROUTES_0_PREDICATES_0=Path=/books/**
git clone https://github.com/RaphaelMun1z/microservices-with-spring-cloud-and-java.git
cd microservices-with-spring-cloud-and-java
git submodule update --init --recursive
# Compile todos os módulos
mvn clean install -DskipTests
# Ou compile um serviço específico
cd api-gateway
mvn clean install -DskipTests
# Naming Server (Eureka)
cd naming-server
mvn spring-boot:run
# Em outro terminal - Config Server
cd spring-cloud-config-server
mvn spring-boot:run
# Em outro terminal - API Gateway
cd api-gateway
mvn spring-boot:run
# Em outro terminal - Book Service
cd book-service
mvn spring-boot:run
# Em outro terminal - Exchange Service
cd exchange-service
mvn spring-boot:run
version: '3.8'
services:
zipkin-server:
image: openzipkin/zipkin:3.5.1
ports:
- 9411:9411
restart: always
networks:
- raphael-network
naming-server:
image: raphaelmuniz/naming-server:0.0.1-SNAPSHOT
ports:
- 8761:8761
restart: always
depends_on:
- zipkin-server
networks:
- raphael-network
api-gateway:
image: raphaelmuniz/api-gateway:0.0.1-SNAPSHOT
ports:
- 8765:8765
restart: always
depends_on:
- zipkin-server
- naming-server
environment:
SPRING_ZIPKIN_BASEURL: http://zipkin-server:9411
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://naming-server:8761/eureka
networks:
- raphael-network
book-db:
image: mysql:9.3.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: book_service
ports:
- 3310:3306
networks:
- raphael-network
exchange-db:
image: mysql:9.3.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: exchange_service
ports:
- 3308:3306
networks:
- raphael-network
book-service:
build:
context: ./book-service
dockerfile: Dockerfile
ports:
- 8100:8100
restart: always
depends_on:
- zipkin-server
- naming-server
- book-db
environment:
SPRING_ZIPKIN_BASEURL: http://zipkin-server:9411
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://naming-server:8761/eureka
SPRING_DATASOURCE_URL: jdbc:mysql://book-db:3306/book_service?useSSL=false
SPRING_DATASOURCE_USERNAME: user
SPRING_DATASOURCE_PASSWORD: password
networks:
- raphael-network
exchange-service:
build:
context: ./exchange-service
dockerfile: Dockerfile
ports:
- 8000:8000
restart: always
depends_on:
- zipkin-server
- naming-server
- exchange-db
environment:
SPRING_ZIPKIN_BASEURL: http://zipkin-server:9411
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://naming-server:8761/eureka
SPRING_DATASOURCE_URL: jdbc:mysql://exchange-db:3306/exchange_service?useSSL=false
SPRING_DATASOURCE_USERNAME: user
SPRING_DATASOURCE_PASSWORD: password
networks:
- raphael-network
networks:
raphael-network:
driver: bridge
# Inicie todos os serviços
docker-compose up -d
# Verifique o status
docker-compose ps
# Veja os logs
docker-compose logs -f api-gateway
# Pare todos os serviços
docker-compose down
# Reconstrua as imagens
docker-compose up -d --build
| Funcionalidade | Método | Endpoint | Descrição |
|---|---|---|---|
| Book Service | GET | /books | Listar todos os livros |
| POST | /books | Criar novo livro | |
| GET | /books/{id} | Obter detalhes de um livro | |
| PUT | /books/{id} | Atualizar livro | |
| DELETE | /books/{id} | Deletar livro | |
| Exchange Service | GET | /exchange/rates | Obter taxas de câmbio |
| POST | /exchange/convert | Converter moedas | |
| Service Discovery | GET | /eureka/apps | Listar serviços registrados |
| Health Check | GET | /actuator/health | Status de saúde da API Gateway |
| Métricas | GET | /actuator/metrics | Métricas da aplicação |
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /books | Listar todos os livros |
| POST | /books | Criar livro |
| GET | /books/{id} | Obter livro por ID |
| PUT | /books/{id} | Atualizar livro |
| DELETE | /books/{id} | Deletar livro |
| GET | /actuator/health | Status de saúde |
| GET | /swagger-ui.html | Documentação Swagger |
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /exchange/rates | Obter taxas de câmbio atuais |
| POST | /exchange/convert | Converter entre moedas |
| GET | /exchange/supported | Moedas suportadas |
| GET | /actuator/health | Status de saúde |
| GET | /swagger-ui.html | Documentação Swagger |
| Serviço | Porta | URL | Descrição |
|---|---|---|---|
| Eureka Server | 8761 | http://localhost:8761 | Service Registry & Discovery |
| Zipkin | 9411 | http://localhost:9411 | Distributed Tracing |
| Config Server | 8888 | http://localhost:8888 | Gerenciamento Centralizado de Config |
curl -X POST http://localhost:8765/books \
-H "Content-Type: application/json" \
-d '{
"title": "Spring in Action",
"author": "Craig Walls",
"isbn": "978-1617294945",
"price": 59.99
}'
curl -X GET http://localhost:8765/books \
-H "Accept: application/json"
curl -X GET http://localhost:8765/books/1 \
-H "Accept: application/json"
curl -X POST http://localhost:8765/exchange/convert \
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"from": "USD",
"to": "BRL"
}'
# API Gateway
curl http://localhost:8765/actuator/health
# Book Service
curl http://localhost:8100/actuator/health
# Exchange Service
curl http://localhost:8000/actuator/health
microservices-with-spring-cloud-and-java/
│
├── api-gateway/ # Gateway de entrada única
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ └── resources/
│ │ │ └── application.yml # Configuração de rotas
│ │ └── test/
│ └── pom.xml
│
├── naming-server/ # Eureka Server
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ └── resources/
│ │ │ └── application.yml
│ │ └── test/
│ └── pom.xml
│
├── spring-cloud-config-server/ # Config Server centralizado
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ └── resources/
│ │ └── test/
│ └── pom.xml
│
├── book-service/ # Microserviço de Livros
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── br/com/autotechsistemas/bookservice/
│ │ │ │ ├── controller/ # REST Controllers
│ │ │ │ ├── service/ # Lógica de negócio
│ │ │ │ ├── repository/ # Acesso a dados
│ │ │ │ ├── model/ # Entidades JPA
│ │ │ │ └── BookServiceApplication.java
│ │ │ └── resources/
│ │ │ ├── application.yml # Configuração
│ │ │ └── db/migration/ # Scripts Flyway
│ │ └── test/
│ ├── Dockerfile
│ └── pom.xml
│
├── exchange-service/ # Microserviço de Câmbio
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── br/com/autotechsistemas/exchangeservice/
│ │ │ │ ├── controller/
│ │ │ │ ├── service/
│ │ │ │ ├── repository/
│ │ │ │ ├── model/
│ │ │ │ └── ExchangeServiceApplication.java
│ │ │ └── resources/
│ │ │ ├── application.yml
│ │ │ └── db/migration/
│ │ └── test/
│ ├── Dockerfile
│ └── pom.xml
│
Projeto para demonstrar a construção de um sistema utilizando Arquitetura de Microserviços em Java com Spring Boot.
eneas-almeida /
Aplicação para caso de uso de uma arquitetura de microserviços utilizando NodeJs com Typescript, Spring Boot, Prisma, TypeORM, Docker, RabbitMQ, testes unitários, CI-CD com github actions.
32/100 healthRafaelRLeite /
O Money Master é um sistema de gerenciamento de finanças desenvolvido em Java, que utiliza a arquitetura de microserviços com Spring, integrado com serviços da AWS, MySQL e Docker.
27/100 healthapduartte /
Microserviço back-end em Java com arquitetura voltado a eventos para processamento assíncrono de alertas de fraude (SQS/DLQ), PostgreSQL, Docker e boas práticas de sistemas distribuídos.
56/100 health