Prólogo
Pensando en un problema, nos encontraremos con tal escenario en el desarrollo real. Dividimos la aplicación en múltiples archivos de configuración, entonces, ¿cómo maneja Nacos múltiples archivos de configuración?
Cargar múltiples configuraciones
Ya sabemos que la correspondencia entre la aplicación Spring y el contenido de configuración en Nacos está controlada por los siguientes tres parámetros:
- spring.cloud.nacos.config.prefix
- spring.cloud.nacos.config.file-extension
- spring.cloud.nacos.config.group
Por defecto, la forma en que usamos: Data ID=${spring.application.name}.properties
Group=DEFAULT_GROUP
configuración.
Por ejemplo: ahora hay una demanda: queremos hacer una gestión de configuración unificada para todos los módulos Actuator y la salida de registro aplicados.
La forma más sencilla de implementar es aplicar la configuración relevante Actuator.properties y log log.properties. Dividimos estos dos tipos de configuración, ahora tiene que compartir el
primer paso:
crear en Nacos en Data ID=actuator.properties
, Group=DEFAULT_GROUP
y Data ID=log.properties
, Group=DEFAULT_GROUP
la configuración del contenido.
Paso 2:
configure los dos contenidos de configuración que se cargarán en la aplicación Spring Cloud mediante el uso de parámetros spring.cloud.nacos.config.ext-config, como:
spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=log.properties
spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[1].refresh=true
Como puede ver:
spring.cloud.nacos.config.ext-config :
Set es un tipo de lista de matriz. Cada configuración incluye tres parámetros: data-id
, group
, refresh
refresh
: Este parámetro controla si el contenido del archivo de configuración de soporte de actualización automática, de forma predeterminada, sólo la configuración por defecto se cargan automáticamente de actualización, para la configuración para cargar el contenido de estas extensiones tienen que configurar los ajustes Solo entonces se logrará la actualización automática.
Configuración compartida
De hecho, el archivo de configuración ya se puede compartir a través del método anterior de cargar la colección. Nacos también proporciona otro método de configuración conveniente
spring.cloud.nacos.config.shared-dataids=actuator.properties,log.properties
spring.cloud.nacos.config.refreshable-dataids=actuator.properties,log.properties
spring.cloud.nacos.config.shared-dataids:
Los parámetros se usan para configurar múltiples configuraciones compartidas Data Id
. Cuando se usan múltiples, se separan por comas
spring.cloud.nacos.config.refreshable-dataids
: Los parámetros se usan para definir qué Data Id
ID de datos de configuración compartida se pueden actualizar dinámicamente en la aplicación cuando la configuración cambia. . Si no hay una configuración explícita, de forma predeterminada, todas las configuraciones compartidas no admiten la actualización dinámica
Configurar prioridad de carga
Cuando cargamos varias configuraciones, si existe la misma clave, debemos comprender la relación de prioridad de la carga de la configuración.
Cuando se usa la configuración de Nacos, hay tres tipos principales de configuración:
- A través de la
spring.cloud.nacos.config.shared-dataids
configuración de uso compartido definida - A través de la
spring.cloud.nacos.config.ext-config[n]
configuración de carga definida - Según las reglas internas (
spring.cloud.nacos.config.prefix
,spring.cloud.nacos.config.file-extension
,spring.cloud.nacos.config.group
empalme de estos parámetros) Configuración
Para determinar el orden de carga de estas configuraciones, agregamos estas configuraciones a la aplicación y observamos los registros
spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.shared-dataids=log.properties
spring.cloud.nacos.config.refreshable-dataids=log.properties
Podemos ver el orden de carga a través del registro: A <B <C
Referencias
Documentación oficial de Nacos Tutorial de documentación de
Nacos