Spring Cloud Config Server es un componente de Spring Cloud que facilita la centralización de configuración de un Sistema distribuido. En palabras más simples nos permite tener la configuración de nuestros servicios en un solo lugar.
Que soluciona
En una arquitectura basada en Microservicios tenemos varias piezas de software que muy probablemente requieran la misma configuración en cada uno de ellos. Para no escribir la misma configuración en cada uno de ellos podemos usar Spring Cloud Config Server y centralizar nuestra configuración en un solo lugar.
Paso 1 Repositorio GIT
Lo primero que debemos hacer es tener un repositorio en Git donde vamos a escribir todas nuestras configuraciones necesarias
Spring Cloud Config Server nos permite separar nuestra configuración por ambiente. Esto significa que en nuestro ambiente por defecto podríamos tener un “valor.maximo” de 10, pero en producción podrimos tener la misma propiedad con un valor de 5.
Para realizar la configuración mencionada anteriormente debemos crear un archivo igual al anterior con los valores que necesitemos, pero agregando el nombre del perfil entre el nombre por default y la extensión. Ejemplo:
- config-client-production.properties
- config-client-uat.properties
- config-client-qa.properties
Paso 2 Configuración de Config Server
Ahora creamos un servicio que lea la configuración del archivo Git. Para esto creamos la siguiente dependencia.
Después creamos el archivo properties donde le diremos donde se encuentra alojado nuestra configuración en Git.
Y solo resta habilitar el servicio para trabaje como un config server
Paso 2 Configuración del Config Client
Lo siguiente que debemos hacer es un servicio que funcione como cliente. Es decir que consulte la información del Servicio Config Server.
Para esto debemos agregar a nuestro nuevo servicio la siguiente dependencia:
Ahora agregamos un nuevo archivo properties con, pero con el nombre “bootstrap.properties” y en él agregamos las siguientes propiedades:
- spring.application.name: Debe tener el nombre del archivo git a leer
- spring.cloud.config.uri: Es la dirección del servicio Server Config
- spring.profiles.active: Es el tipo de perfil activo
- management.endpoints.web.exposure.include: Habilita la posibilidad de recargar las propiedades en caso de actualización.
Paso 3 Lectura de los valores
Para leer los valores del archivo propierties en nuestro servicio config client basta con usar la anotación @Value dentro de un Bean de nuestro proyecto.
Ahora ya podemos usar los valores de las propiedades alojadas en el git en todos nuestros microservicios de nuestro proyecto.
Que aprendimos Sobre Spring Cloud Config Server
Ahora podemos crear una aplicacion Config Server y aplicaciones Config Client para poder centralizar las propiedades comunes de todos nuestros microservicios además aprendimos a separarlas por ambientes de desarrollo, pruebas, producción, etc.