Proyecto educativo de microservicios con Spring Boot, Spring Cloud, PostgreSQL, Kafka y observabilidad.
Java 17, Spring Boot 3.5, Spring Cloud, PostgreSQL 16, Kafka, Prometheus, Loki, Grafana, Angular 21
# 1. Redes Docker (una sola vez)
docker network create ecom-prod-net
docker network create ecom-dev-net
# 2. Infraestructura (Maven, cada uno en su terminal)
cd infra/config && mvn spring-boot:run # http://localhost:18888
cd infra/eureka && mvn spring-boot:run # http://localhost:18761
cd infra/gateway && mvn spring-boot:run # http://localhost:18080/actuator/health
# 3. PostgreSQL para cada servicio que vayas a levantar
cd services/auth-ms && docker compose -f compose-dev.yml up -d # :15431
cd services/catalogo-ms && docker compose -f compose-dev.yml up -d # :15432
cd services/producto-ms && docker compose -f compose-dev.yml up -d # :15433
# 4. Microservicios (cada uno en su terminal)
cd services/auth-ms && mvn spring-boot:run
cd services/catalogo-ms && mvn spring-boot:run
cd services/producto-ms && mvn spring-boot:run# 1. Red
docker network create ecom-prod-net
# 2. Levantar infraestructura (Docker compila las imágenes)
cd infra && docker compose up -d --build
# http://localhost:28888 — Config Server
# http://localhost:28761 — Eureka Dashboard
# http://localhost:28082/actuator/health — API Gateway health
# 3. Servicios (Docker compila cada imagen)
cd ../services/auth-ms && docker compose up -d --build
cd ../catalogo-ms && docker compose up -d --build --scale catalogo-ms=3
cd ../producto-ms && docker compose up -d --build
cd ../orden-ms && docker compose up -d --build
cd ../pago-ms && docker compose up -d --buildPara modo mixto (Maven + Docker): arranca infra en Docker y pasa estas variables a tus servicios Maven:
CONFIG_SERVER_URL=http://localhost:28888
eureka.client.service-url.defaultZone=http://localhost:28761/eureka| Componente | Puerto host DEV (Maven) | Puerto host PROD (Docker) |
|---|---|---|
| Config Server | 18888 | 28888 |
| Eureka | 18761 | 28761 |
| Gateway | 18080 | 28082 |
| auth-ms | dinámico | vía Gateway |
| catalogo-ms | dinámico | vía Gateway |
| producto-ms | dinámico | vía Gateway |
| orden-ms | dinámico | vía Gateway |
| pago-ms | dinámico | vía Gateway |
ecom/
├── infra/ ← Config, Eureka, Gateway
├── services/ ← auth-ms, catalogo-ms, producto-ms, orden-ms, pago-ms
├── clients/ ← ecom-ng (Angular)
├── kafka/ ← broker + UI
├── obs/ ← Prometheus, Loki, Grafana
├── docs/ ← libro digital (MkDocs)
└── extras/ ← experimentos
Libro digital: docs/ (MkDocs, sirve en :8002 con docs/compose.yml)