Notas de estudio de microservicios: (gestión de configuración de Nacos)

Gestión de configuración de Nacos

  • Gestión de configuración unificada
  • Configurar actualización en caliente
  • compartir configuración
  • Cree un clúster de Nacos

Gestión de la configuración de Nacos - Nacos implementa la gestión de la configuración

Gestión de configuración unificada

Actualización en caliente del cambio de configuración

Añadir información de configuración en Nacos: gestión de configuración-lista de configuración-+

Complete la información de configuración en el formulario emergente:

Data ID:配置文件的id:[服务名称]-[profile].[后缀名]   # eg:orderservice-dev.yaml
Group: DEFAULT_GROUP #分组,默认即可
配置格式: 格式,目前支持yaml和properties
配置内容:# eg:
pattern:
  dataformat: yyyy-MM-dd HH:mm:ss

Gestión de configuración de Nacos: extracción de configuración de microservicio

Gestión de configuración unificada

Los pasos para obtener la configuración son los siguientes:

Inicio del proyecto -> dirección de nacos, bootstrap.yml -> leer el archivo de configuración de nacos -> leer el archivo de configuración local application.yml -> crear contenedor de primavera -> cargar bean


1. Presente las dependencias del cliente de gestión de configuración de Nacos:

<!--nacos配置管理依赖-->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2. Agregue un archivo bootstrap.yml al directorio de recursos en userservice.Este archivo es un archivo de arranque con una prioridad más alta que application.yml

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos地址
      config: 
        file-extension: yaml # 文件后缀名

Inyecte el atributo pattern.dateformat en UserController en el servicio de usuario para realizar pruebas:

@RestController
@RequestMapping("/user")
public class UserController {
    
    
	
	// 注入nacos中的配置属性
	@Value("${pattern.dateformat}")}
	private String dateformat;
	
	// 编写controller,通过日期格式化器来格式化现在时间并返回
	public String now() {
    
    
		return LocalDate.now().format(DateTimeFormatter.ofPattern(dataformat, Locale.CHINA));
	}
	...
}

resumen:

Pasos para entregar la configuración a la gerencia de Nacos

  • Agregar archivos de configuración en Nacos
  • Introducir dependencias de configuración de nacos en microservicios
  • Agregue bootstrap.yml al microservicio y configure la dirección de nacos, el entorno actual, el nombre del servicio y la extensión del archivo. Estos determinan qué archivo leer de nacos cuando se inicia el programa

Gestión de la configuración de Nacos: actualización en caliente de la configuración

Configurar actualización automática

Después de cambiar el archivo de configuración en Nacos, el microservicio puede percibirlo sin reiniciar. Sin embargo, debe implementar las siguientes dos configuraciones:

Método 1: agregue la anotación @RefreshScope en la clase donde se encuentra la variable inyectada por @Value

@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
    
    
	
	@Value("${pattern.dateformat}")
	private String dateformat;
}

Método 2: Usar la anotación @ConfigurationProperties

@Component
@Data
@COnfigurationProperties(prefix = "pattern")
public class PatternProperties {
    
    
	private String dateformat;
}
@slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
    
    
	
	@Autowired
	private PatternProperties properties;
	 
	@GetMapping("now")
	public String now() {
    
    
		return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()))
	}
}

resumen:

Después de cambiar la configuración de Nacos, los microservicios se pueden actualizar en caliente de las siguientes maneras:

  • Inyectado a través de la anotación @Value, combinado con @RefreshScope para actualizar
  • Inyectado a través de @ConfigurationProperties, actualizado automáticamente

Precauciones:

  • No todas las configuraciones son adecuadas para colocarse en el centro de configuración, lo cual es problemático de mantener
  • Se recomienda colocar algunos parámetros clave y parámetros que deben ajustarse en tiempo de ejecución en el centro de configuración de nacos, que generalmente son configuraciones personalizadas.

Gestión de configuración de Nacos: uso compartido de configuración de varios entornos

Uso compartido de configuración multientorno

Cuando se inicie el microservicio, leerá varios archivos de configuración de nacos:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml

  • [spring.application.name].yaml,例如:userservice.yaml

No importa cómo cambie el perfil, el archivo [spring.application.name].yaml se cargará, por lo que la configuración de uso compartido de múltiples entornos se puede escribir en este archivo.


Prioridad de varias configuraciones:

nombre-servicio-perfil.yaml > nombre-servicio.yaml > configuración-local

resumen:

El archivo de configuración que el microservicio leerá de nacos:

  • [nombre del servicio]-[spring.profile.active].yaml, configuración del entorno
  • [nombre del servicio].yaml, configuración predeterminada, uso compartido en varios entornos

prioridad:

[nombre del servicio]-[entorno].yaml>[nombre del servicio].yaml>configuración local


## Gestión de la configuración de Nacos: construcción del clúster de Nacos #### Construcción del clúster de Nacos

En el entorno de producción de Nacos, debe implementarse como un estado de clúster

1. Diagrama de estructura de clúster

El diagrama de cúmulo oficial de Nacos:

DNS
SLB
Nacos Nacos Nacos

Contiene 3 nodos nacos y luego un proxy equilibrador de carga 3 nacos. Aquí el balanceador de carga puede usar nginx.

Direcciones de tres nodos nacos:

nodo ip puerto
nacos1 192.168.150.1 8845
nacos2 192.168.150.1 8846
nacos3 192.168.150.1 8847

2. Construya un diagrama de conglomerados

Los pasos básicos para construir un clúster:

  • Cree la base de datos e inicialice la estructura de la tabla de la base de datos
  • Descargar paquete de instalación de nacos
  • configurar nacos
  • Iniciar clúster de nacos
  • proxy inverso nginx

2.1 Inicializar la base de datos

Los datos predeterminados de Nacos se almacenan en la base de datos integrada Derby, que no es una base de datos disponible para producción.

La mejor práctica recomendada oficialmente es utilizar un clúster de base de datos de alta disponibilidad con maestro-esclavo

Aquí hay una base de datos de un solo punto como ejemplo.

2.2 Descargar nacos

nacos tiene una dirección de descarga en GitHub: https://github.com/alibaba/nacos/tags, puede elegir cualquier versión para descargar.

2.3 Configurar Nacos

Descomprima el paquete en cualquier directorio que no sea chino, como se muestra en la figura:

  • papelera
  • conferencia
  • objetivo
  • LICENCIA
  • AVISO

Descripción del directorio:

  • bin: secuencia de comandos de inicio
  • conf: archivo de configuración

Ingrese al directorio conf de nacos, modifique el archivo de configuración cluster.conf.example y cámbiele el nombre a cluster.conf:

Luego agrega contenido:

127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847

Luego modifique el archivo application.properties y agregue la configuración de la base de datos

spring.datasource.platform=mysql
db.num=1

db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123

2.4 Puesta en marcha

Copie la carpeta nacos tres veces, a saber: nacos1, nacos2, nacos3

Luego modifique applicaiton.properties en las tres carpetas respectivamente

nacos1:

server.port=8845

nacos2:

server.port=8846

nacos3:

server.port=8847

Luego inicie tres nodos nacos por separado:
el valor predeterminado es el inicio del clúster

startup.cmd

Proxy inverso 2.5.nginx

Descomprima la instalación de nginx en cualquier directorio que no sea chino:

Modifique el archivo conf/nginx.conf, la configuración es la siguiente:

upstream nacos-cluster {
    
    
	server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
}

server {
    
    
	listen 80;
	server_name localhost;
	 
	location /nacos {
    
    
		proxy_pass http://nacos-cluster;
	}
}

En bootstrap.yml:

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev # 开发环境,这里是dev
  cloud:
    nacos:
      server-addr: localhost:80 # Nacos地址
      config: 
        file-extension: yaml # 文件后缀名

Dirección de acceso al navegador:

http://localhost/nacos

resumen:

Pasos de construcción del clúster

  • Cree un clúster MYSQL e inicialice la tabla de la base de datos
  • Descargar y descomprimir nacos
  • Modificar la configuración del clúster (información del nodo), configuración de la base de datos
  • Inicie múltiples nodos nacos por separado
  • proxy inverso nginx

Supongo que te gusta

Origin blog.csdn.net/weixin_42594143/article/details/130573993
Recomendado
Clasificación