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