Este proyecto utiliza Docker y Docker Compose para gestionar los microservicios y sus bases de datos.
Antes de comenzar, asegúrate de tener instalado en tu sistema:
NO EJECUTAR EL SERVICIO REDIS, sigue en desarrollo para mostrar caché
# Clonar el repositorio desde GitHub
git clone https://github.com/JosCariDe/spring-microservices.git
# Ir al directorio del proyecto
cd spring-microservices
# Apagar cualquier instancia previa (opcional, por si acaso)
docker-compose down
# Construir y levantar los servicios en segundo plano
docker-compose up --build -d
📌 Nota: El flag --build
se usa para asegurarse de que se reconstruyan las imágenes con los cambios más recientes.
docker ps
Si todo está bien, deberías ver los contenedores ejecutándose.
Si hay problemas, revisa los logs de los contenedores con:
# Ver logs de todos los servicios
docker-compose logs -f
# Ver logs de un servicio específico (ejemplo: order-service)
docker-compose logs -f order-service
Cada microservicio se ejecuta en un puerto diferente. Asegúrate de que los puertos especificados en docker-compose.yml
estén disponibles en tu máquina.
server:
port: 4040
spring:
application:
name: api-gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: order-service
uri: lb://order-service
predicates:
- Path=/api/orders/**
filters:
- StripPrefix=2
- RedisCacheResponseFilter=30s
- id: inventory-service
uri: lb://inventory-service
predicates:
- Path=/api/inventory/**
filters:
- StripPrefix=2
- RedisCacheResponseFilter=30s
- id: product-service
uri: lb://product-service
predicates:
- Path=/api/products/**
filters:
- StripPrefix=2
- RedisCacheResponseFilter=30s
- id: payment-service
uri: lb://payment-service
predicates:
- Path=/api/payments/**
filters:
- StripPrefix=2
- RedisCacheResponseFilter=30s
Para detener los contenedores sin eliminarlos:
docker-compose stop
Para detener y eliminar los contenedores, redes y volúmenes:
docker-compose down -v
Si algún servicio falla porque el puerto ya está en uso, verifica qué procesos lo están ocupando:
sudo lsof -i :8080 # Reemplaza 8080 por el puerto que necesites verificar
Para liberar el puerto:
sudo kill -9 <PID>
Si un servicio no puede conectarse a su base de datos, revisa:
docker ps
)docker-compose.yml
son correctasdocker-compose down -v && docker-compose up --build -d