SpringCloud2 - Gestión de configuración de Nacos

Por favor agregue la descripción de la imagen
Tarjeta de visita personal:

bloguero: Alcohólicos ᝰ.
Perfil personal: Disfrute del vino y luche por un futuro con una bebida.
Este artículo es inspirador: Tres personas caminan, ahí debe estar mi maestro.

Por favor agregue la descripción de la imagen
Este proyecto se basa en el programador dark horse de la estación B Java "SpringCloud Microservice Technology Stack", SpringCloud+RabbitMQ+Docker+Redis+search+distributed

[SpringCloud+RabbitMQ+Docker+Redis+search+distributed, sistema detallado curso de pila de tecnología de microservicios springcloud|programador de caballos oscuros Java microservicio] Haga clic para ver

1. Gestión de configuración unificada

1. Empezar nacos

En el directorio bin de nacos, haga clic derecho en el espacio en blanco y ábralo en la terminal.
imagen.png
Ingrese el comando: .\startupup.cmd -m independiente
imagen.png

2.nacos añadir

Puede agregarlo como se muestra a continuación.
imagen.pngimagen.png

3. Operación IDEA

  1. importar dependencias

El userservice-dev.yaml está configurado en nacos, y todas las siguientes operaciones se realizan en el módulo de servicio al usuario.

<!--nacos配置管理依赖-->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  1. archivo bootstrap.yml
spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名
  1. inyección de propiedad
package cn.itcast.user.web;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@RestController
@RequestMapping("/user")
public class UserController {
    
    
    
    @Value("${pattern.dateformat}")
    private String dateformat;
    
    @GetMapping("/now")
    public String now(){
    
    
        return LocalDateTime.now().format(
            DateTimeFormatter.ofPattern(properties.getDateformat())
        );
    }
    
    /*
    省略...
    */
}

4. prueba

  • ruta de acceso

http://localhost:8081/usuario/ahora

  • resultado de la visita

imagen.png

2. Actualización en caliente

En este punto, cuando modificamos la configuración en nacos, necesitamos reiniciar el servicio para que surta efecto.
Propósito : Necesitamos modificar la configuración en nacos para que surta efecto directamente.

Método 1: agregue la anotación @RefreshScope directamente a la clase del controlador

import org.springframework.cloud.context.config.annotation.RefreshScope;

@RefreshScope
public class UserController {
    
    
    //...省略
}

Método 2: anotar con @ConfigurationProperties

1. Cree una nueva configuración de módulo y cree una nueva clase PatternProperties en ella.
imagen.png
2. Escribir código en la clase PatternProperties

package cn.itcast.user.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    
    
    private String dateformat;
}

3. Modifique el código en el controlador. Después de crear la clase PatternProperties anteriormente, mueva la configuración de nacos a la nueva clase. Aquí, debe llamar a la nueva clase para obtenerla, lo cual es conveniente para la actualización en caliente.

package cn.itcast.user.web;

import cn.itcast.user.config.PatternProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    
    

    @Autowired
    private PatternProperties properties;

    @GetMapping("/now")
    public String now(){
    
    
        return LocalDateTime.now().format(
                DateTimeFormatter.ofPattern(properties.getDateformat())
        );
    }
}

3. Uso compartido de configuración multientorno (abreviado)

imagen.png
Prioridad: [nombre del servicio]-[perfil].[yaml] > [nombre del servicio].[yaml] > [configuración local]

1. Crear una configuración de nacos compartida

imagen.png
En este punto, no importa cómo cambie el perfil en **[nombre del servicio]-[perfil].[yaml] , [nombre del servicio].[yaml] ** definitivamente se cargará.

  • Modificar perfil

Haga clic con el botón derecho en el servicio que desea modificar, seleccione Editar
imagen.png
e ingrese el valor del perfil modificado en Perfiles activos.
imagen.png

2. Establecer una configuración compartida

1. Método 1: configuraciones de extensión

spring:
  cloud:
    nacos:
      config:
        extension-configs:
          - extend.yaml

2. Método 2: configuraciones compartidas

spring:
  cloud:
    nacos:
      config:
        shared-configs:
          - common.yaml

4. Construcción de grupos

clúster de nacos build.md

5. Resolución anormal

1. El servidor nacos no se inicia y se rechaza la conexión: se informa la excepción de conexión, de la siguiente manera.
inserte la descripción de la imagen aquí

Inicie nacos de acuerdo con la operación correcta.

Supongo que te gusta

Origin blog.csdn.net/m0_65144570/article/details/127080826
Recomendado
Clasificación