Proyecto de backend en Java con Spring Boot 3 utilizando una arquitectura de microservicios. Este proyecto fue desarrollado como ejercicio académico para la carrera de Especialización Backend en Digital House.
El sistema se compone de los siguientes microservicios:
config-server
: Servidor central de configuración.eureka-server
: Registro de servicios (Service Discovery).gateway
: Puerta de entrada a los servicios.music-service
: Microservicio de gestión de canciones.playlist-service
: Microservicio de gestión de playlists.
Todos los servicios están orquestados utilizando Spring Cloud y registrados en Eureka.
- Java 19
- Spring Boot 3
- Spring Cloud Config
- Spring Cloud Netflix Eureka
- Spring Gateway
- Docker & Docker Compose
- MySQL
- Postman
El config-server
utiliza un repositorio externo con los archivos application.yml
de cada microservicio:
🔗 Repositorio de configuración
Este repositorio debe estar disponible para que config-server
pueda leer las configuraciones.
Antes de ejecutar este proyecto, asegúrate de tener instalado:
- Java 19
- Maven
- Docker y Docker Compose
- MySQL (si no usas Docker)
- Postman (para ejecutar pruebas)
git clone https://github.com/JGalvisS/BackEsp1Async-music.git
cd BackEsp1Async-music
En la carpeta docker/
hay un archivo docker-compose.yml
. Ejecuta:
docker-compose up -d
Esto iniciará un contenedor de MySQL con las configuraciones necesarias y persistencia de datos.
-
a) Config Server
-
b) Eureka Server
-
c) Gateway
-
d) Music Service
-
e) Playlist Service
El repositorio incluye una colección de pruebas de integración con Postman para comprobar el flujo de los endpoints de los servicios.
📁 Archivo: BackEndAsyncEspecializacion1.postman_collection.json
- El
config-server
debe iniciarse antes que cualquier otro microservicio. - Todos los servicios deben estar correctamente registrados en Eureka para su correcto funcionamiento.
- El archivo
application.yml
de cada microservicio se encuentra en el repositorio de configuración externo y es leído automáticamente por elconfig-server
.
Desarrollado por @JGalvisS
📚 Proyecto académico para Digital House - Especialización Backend