En el blog anterior, colocamos los archivos de configuración en nuestros respectivos servicios, pero hay una desventaja al hacerlo. Una vez que se modifica la configuración, debemos apagar y luego modificar los archivos de configuración antes de conectarse. Si hay pocos servicios, es comprensible hacer esto. Sin embargo, si hay cientos de servicios, se necesita administración de configuración distribuida en este momento. Y Spring Cloud Config se crea para resolver este problema. La siguiente es una combinación de GitLab para implementar la construcción de un centro de configuración distribuido. El centro de configuración de configuración de Spring Cloud consiste en el final del servidor y el final del cliente.
Prerrequisito: cree un nuevo archivo de configuración configServer-dev.properties en el proyecto en GITLAB
1. Configurar servidor
1. Agregar dependencias
<Spendency> <MoupRupid> org.springframework.cloud </groupid> <artifactid> spring-ncloud-config-server </artifactid> </pendency>
2. Habilite el soporte en la clase principal de la aplicación
@Enableconfigserver
3. Configure el archivo Application.yml
Servidor: Puerto: 8888 Spring: Aplicación: Nombre: Config Cloud: Config: Server: Git: Uri: https://gitlab.xxx.com/xxxxxx/xxxx.git # Configure la dirección de la repositoria GitLab. Tenga en cuenta que la búsqueda de Path: /Config-Repo # La dirección relativa en la dirección del repositorio GITLAB se puede configurar con múltiples, usar y dividir. Nombre de usuario: su nombre de usuario # Repositorio de gitlab Contraseña de cuenta: su contraseña # Repositorio de gitlab contraseña
Nota: Si el archivo de configuración se coloca en el directorio raíz del repositorio Git, no es necesario usar el parámetro SearchPaths. El archivo de configuración en este ejemplo se encuentra en el directorio config-RepO, por lo que usa el parámetro SearchPaths para pedirle al servidor config que busque el subdirectorio de configuración-RepO.
4. Inicie el servidor e ingrese http: // localhost: 8888/configServer/dev/master en el navegador
{"name": "configServer", "perfiles": ["dev"], "etiqueta": "maestro", "versión": "073cda9ce85a3eed00e406f4ebcc4651ee4d9b19", "estado": nulo, "PropertySources": [{"nombre"::::: " "https://gitlab.xxx.com/xxxxxx/project/config-repo/configserver.properties", "fuente": {"nombre": "chhliuxyh", "Hola": "¡Soy el rey del mundo!", "Perfil": "Perfil-Default"}]}}Puede ver que el lado del servidor ya puede leer el archivo de configuración de GitLab. Puede acceder a recursos en GitLab en el formulario a continuación
/{aplicación} /{perfil} [ /{etiqueta}] //SApapplatationROT a los habitantes de salasPor ejemplo, ingrese: http: // localhost: 8888/configServer-dev.yml en el navegador, y el resultado es el siguiente:
Hola: ¡Soy el rey del mundo! Nombre: Chhliuxyh Perfil: perfil-default
2. Configure el cliente
1. Agregar dependencias de POM
<Spendency> <MoupRoMID> org.springframework.cloud </groupid> <artifactid> spring-ncloud-starter-config </artifactid> </peperspency> <pendency> <grupoD> org.springframework.boot </groupId> <artifactid> spring-boot-starter-web </artifactid> </dependency>
2. Configure el archivo bootstrap.yml
Nota: El archivo de configuración aquí debe colocarse en el archivo bootstrap.properties o bootstrap.yml, porque la configuración de la configuración precedirá a la aplicación.
Servidor: Puerto: 8889 Spring: Aplicación: Nombre: ConfigServer # Debe ser consistente con el prefijo del archivo de configuración. Por ejemplo, nuestro nombre de archivo de configuración aquí es configServer-dev.properties, por lo que necesitamos configurarlo como configServer Cloud: Config: Uri: http: // localhost: 8888/// Configurar el perfil de URL del servidor Spring Cloud Cloud: Dev # SpecifiTe Etiqueta: Master # Especifique la rama del Repositor de GitLab Repository:
3. Verifique el cliente
Agregue un nuevo controlador al cliente
paquete com.chhliu.springcloud.config; importar org.springframework.beans.factory.annotation.value; importar org.springframework.boot.springapplication; importar org.springframework.boot.autoconfigure.springbootapplication; importar org.springframework.cloud.context.config.annotation.refreshscope; importar org.springframework.web.bind.annotation.getMapping; importar org.springframework.web.bind.annotation.restController; @SpringBootApplication @RestController @RefreshScope //Annotation @RefreshScope indicates that the Config client also refreshes the injected property value when the server configuration changes public class SpringcloudConfigClientApplication { public static void main(String[] args) { SpringApplication.run(SpringcloudConfigClientApplication.class, args); } @Value ("$ {Hello}") // Lea las propiedades en el archivo de configuración de GitLab. Si leemos el valor, significa que el cliente está bien el perfil de cadena privada; @GetMapping ("/Hello") public String Hello () {return this.profile; }}Visite en el navegador: http: // localhost: 8889/hola, el resultado es el siguiente:
¡Soy el rey del mundo!
Esto significa que el cliente ya puede obtener el valor del servidor.
3. Actualización dinámica
Actualizar configuraciones administradas de Spring Cloud Config sin reiniciar el cliente
1. Actualice el valor de la propiedad correspondiente a Hello en el archivo de configuración de ConfigServer-Dev.Properties en el repositorio de GITLAB
2. Visite http: // localhost: 8888/configServer/dev/master y encuentre que el contenido del lado del servidor se ha actualizado
3. Envíe una solicitud POST al cliente Conf http: // localhost: 8889/actualización y devuelva 200 OK. Visite http: // localhost: 8889/Hola nuevamente, se puede ver que el valor de atributo de lectura se ha actualizado dinámicamente sin reiniciar el servicio al cliente.
PD: Para lograr una actualización dinámica, debe agregar el siguiente arranque al archivo POM
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactId> spring-boot-starter-actuator </artifactid> </dependency>
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.