Config Server - nelsonortfan/MicroDockerSpringBoot GitHub Wiki

Config Server

Este es un Servicio ofrecido por Spring Boot para centralizar las propiedades de una aplicación para que pueda ser tomada por varios contenedores al mismo tiempo. Para más información visitar el link Spring Cloud Config Server

Para acceder a estas propiedades, podemos usar 3 diferentes opciones que son:

Para ello, tomamos el proyecto anterior y copiamos solo los microservicios sin el folder .idea y los copiamos en un nuevo folder llamado ConfigServer5. Desde la pagina de Spring creamos el proyecto base con las siguientes dependencias y lo descargamos. Lo descomprimimos y lo dejamos en el nuevo folder creado. Desde Intellij abrimos este folder y cargamos el proyecto con las dependencias de Maven:

baseproyecto

Procedemos a realizar los cambios en las configuraciones. En nuestro caso, el Config Server se inicializara en el puerto 8071 por lo que hacemos las modificaciones correspondientes en el archivo application.yml.

En el proyecto de configserver, creamos un nuevo folder llamado config dentro de la carpeta resources y pegamos en el los archivos .yml del microservicio accounts pero lo renombramos. Una vez hecho esto, en los nuevos archivos copiados y renombrados solo dejaremos las propiedades build y accounts.

Class Path Location Config Server

En el archivo application.yml del proyecto configserver configuramos lo siguiente para indicarle que tomara la configuración del Path:

classpath0

Inicializamos este servicio y vamos a la url http://localhost:8071/accounts/default donde veremos las propiedades cargadas gracias al actuator. Si queremos cambiamos default por prod o por qa para ver los otros profiles:

classpath1

En el servicio accounts, borramos los archivos .yml relacionados a los profiles prod y qa mientras que en el archivo default quitamos las propiedades config, profile, build y accounts.

En la propiedad de spring del mismo archivo .yml de accounts, le damos un mismo nombre y debe ser el mismo con el que nombramos los archivos .yml copiados en el configserver para que los pueda identificar:

classpath2

Nos devolvemos a la pagina de Spring Boot y agregamos la dependencia de Config client:

classpath3

Le damos click en la opción de Explore y copiamos la versión de spring cloud version y también la nueva dependencia agregada. Esto ira en el archivo pom.xml del servicio accounts. Tambien buscar la parte del dependency Management y copiarla:

classpath4

Nuestro archivo debe tener las siguientes modificaciones, hacemos un recargue de dependencias con la ayuda de Maven:

classpath5

classpath6

Abrimos el archivo application.yml de accounts y agregamos el profile de prod y adicional el config donde le indicaremos que usaremos el configserver para tomar estas propiedades:

classpath7

En este caso el parámetro optional se usa para indicar de que en caso de no encontrar el servicio de configserver funcionando entonces el servicio accounts pueda iniciar sin problema.

Arrancamos primero el servicio de configserver y luego el de accounts:

classpath7_5

Posteriormente vemos las propiedades del profile prod gracias a la ayuda del actuator:

classpath8

Finalmente, hacemos la prueba de uno de los servicios desde Postman y vemos que las propiedades han cargado sin inconveniente:

classpath9

File System Location

Github Repository