Centro de configuración: Nacos

Introduccion

Centros de configuración comunes: SpringBoot + git, zookeeper, redis, etc.
Además de implementar el centro de registro , Nacos también combina el centro de configuración.A través de la función de gestión de configuración de Nacos, podemos concentrar todas las configuraciones dentro de todo el sistema de arquitectura en Nacos Almacenamiento.
Los beneficios de hacer esto:

  • La configuración separada de múltiples entornos permite una autoridad de administración más flexible y una mayor seguridad
  • El paquete de la aplicación es más puro, para lograr las características del paquete una vez, ejecutándose en múltiples
    ubicaciones Configuración de posicionamiento: el modelo de gestión de configuración de Nacos utiliza DataId y Group para localizar el contenido de configuración, además de muchas otras funciones de gestión.

Inicio rápido

A través de un ejemplo simple para presentar cómo crear contenido de configuración en Nacos y cómo cargar la información de configuración de Nacos en la aplicación Spring Cloud.

Crear configuración

El primer paso: ingrese a la página de control de Nacos, en la página de funciones de la lista de configuración, haga clic en el botón "+" en la esquina superior derecha para ingresar a la página de "nueva configuración", complete el contenido de la siguiente manera:
Inserte la descripción de la imagen aquíObservaciones

  • Data ID : Completar alibaba-nacos-config-client.properties
  • Group: Sin modificación, use el valor predeterminadoDEFAULT_GROUP
  • Formato de configuración: seleccione Propiedades
  • Contenido de configuración: el contenido de configuración que debe cargar la aplicación, aquí solo se usa como ejemplo, para hacer una configuración simple, como: didispace.title = spring-cloud-alibaba-learning

Crear aplicación

Paso 1: Cree una aplicación Spring Boot, que puede llamarse: alibaba-nacos-config-client.

Paso 2: Edite pom.xml y agregue la configuración de dependencia necesaria, como:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <optional>true</optional>
    </dependency>
</dependencies>

No hay ningún módulo de descubrimiento de servicios agregado a nacos, por lo que estos dos contenidos se pueden usar de forma independiente

parent: Defina la versión de Spring Boot
dependencyManagement: la versión de Spring Cloud y la versión de Spring Cloud Alibaba. Dado que Spring Cloud Alibaba no se ha incluido en la gestión de la versión principal de Spring Cloud, debe agregarse
dependencies: contenido dependiente para ser utilizado por la aplicación actual. Aquí se agrega principalmente un nuevo módulo de cliente de configuración de Nacos: spring-cloud-starter-alibaba-nacos-config. Dado que la versión se ha introducido en dependencyManagement, no es necesario especificar una versión específica aquí.
Paso 3: Cree la clase de aplicación principal e implemente una interfaz HTTP:

@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    @RefreshScope
    static class TestController {

        @Value("${didispace.title:}")
        private String title;

        @GetMapping("/test")
        public String hello() {
            return title;
        }

    }

}

@RefreshScope Explicación de la anotación: deje que el contenido de la configuración de esta clase admita la actualización dinámica, es decir, después de que nuestra aplicación se inicie, después de modificar el contenido de la configuración en Nacos, entrará en vigencia inmediatamente aquí.

Paso 4: Cree un archivo de configuración bootstrap.properties y configure el nombre del servicio y la dirección de Nacos

spring.application.name=alibaba-nacos-config-client
server.port=8001

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

Nota: Debe usar bootstrap.properties, y el
valor spring.application.name debe coincidir con el Id. De datos de configuración creado en la etapa anterior de Nacos (a excepción del sufijo .properties o .yaml).

Paso 5: Verifique la adquisición de la configuración y verifique la actualización dinámica.
Utilice herramientas como curl o cartero para acceder a la interfaz: localhost: 8001 / test. Si todo es normal, se devolverá el aprendizaje spring-cloud-alibaba configurado en Nacos. Luego, a través de la página de Nacos, modifique este contenido, haga clic en el lanzamiento y luego acceda a la interfaz, puede ver que el resultado devuelto ha cambiado.

Al mismo tiempo, en el lado del cliente de la aplicación, también podemos ver los siguientes registros:

2019-01-27 18:39:14.162  INFO 93597 --- [-127.0.0.1_8848] o.s.c.e.event.RefreshEventListener       : Refresh keys changed: [didispace.title]

Reglas de carga configuradas

Configuración predeterminada de Nacos ::
Data IDalibaba-nacos-config-client.properties
Group: DEFAULT_GROUP
explica la configuración aquí y la configuración de los archivos en el proyecto correspondiente

  • En Data ID alibaba-nacos-config-client: correspondiente a la configuración del cliente spring.cloud.nacos.config.prefix, el valor predeterminado spring.cloud.nacos.config.prefixes: nombre del servicio
  • ID de datos properties: correspondiente a la configuración del cliente spring.cloud.nacos.config.file-extension, el valor predeterminado esproperties
  • Valor de grupo DEFAULT_GROUP: corresponde a la configuración del cliente spring.cloud.nacos.config.group, el valor predeterminado es DEFAULT_GROUP
    Nota: la aplicación adopta la forma predeterminada de cargar la configuración:Data ID=${spring.application.name}.properties
    Group=DEFAULT_GROUP

Ejemplo 1: Cómo cambiar la configuración sin cargar el nombre predeterminado de la aplicación, como Data ID=example.properties,Group=DEFAULT_GROUP

spring.cloud.nacos.config.prefix=example

Ejemplo 2: si desea cargar contenido en formato yaml en lugar de contenido en formato Propiedades Data ID=example.yaml,Group=DEFAULT_GROUP

spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml

Ejemplo 3: Si la configuración de la gestión de grupos, tales como la carga: Data ID=example.yaml,Group=DEV_GROUP

spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=DEV_GROUP

Pensando

Existen tres tipos de configuración Nacos correspondencia, en las dos primeras spring.cloud.nacos.config.prefixy spring.cloud.nacos.config.file-extensionla mayor parte de la configuración por defecto utilizado
pero para spring.cloud.nacos.config.groupello: Se puede hacer referencia a la función de espacio de nombres, tales como: lo utilizan para distinguir entre diferentes contenidos configuración de los grupos de productos de cada aplicación (nombre de la aplicación puede resolver Problemas conflictivos), o úselo para distinguir el contenido de configuración de diferentes usos, o úselo para distinguir la configuración de diferentes entornos

Referencias

Documentación de spring-cloud-nacos

8 artículos originales publicados · Me gusta0 · Visitas 45

Supongo que te gusta

Origin blog.csdn.net/weixin_41213402/article/details/105394213
Recomendado
Clasificación