Las aplicaciones Spring Cloud utilizan Nacos para la gestión de configuraciones durante el desarrollo local. Después del despliegue en Enterprise Distributed Application Service (EDAS), Application Configuration Management (ACM) integrado con EDAS asume automáticamente la gestión y distribución de las configuraciones.
Este tutorial explica cómo compilar una aplicación Spring Cloud con Spring Cloud Alibaba Nacos Config:
Iniciar Nacos Server localmente y crear una configuración
Compilar una aplicación Spring Boot que lea desde Nacos
Comprobar la actualización dinámica de la configuración
Desplegar la aplicación en EDAS
Para omitir los pasos de compilación, descargue el proyecto de demostración nacos-config-example.zip.
Spring Cloud Alibaba Nacos Config integra Nacos con el framework Spring Cloud y cumple con la especificación de inyección de configuración de Spring Cloud.
La función de gestión de configuraciones de EDAS no entra en conflicto con Nacos de código abierto.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Maven instalado y configurado en la variable PATH del sistema
La última versión de Nacos Server descargada
Paso 1: Iniciar Nacos Server
Extraiga el archivo comprimido de Nacos Server descargado.
-
Vaya al directorio
nacos/bine inicie el servidor en modo independiente:-
Linux, UNIX o macOS:
sh startup.sh -m standalone -
Windows:
startup.cmd -m standalone
-
De forma predeterminada, startup.cmd se inicia en modo clúster. Si hace doble clic directamente en el archivo en Windows, el inicio fallará. Ejecute el comando anterior o agregue MODE="standalone" a startup.cmd. Para más detalles, consulte Inicio rápido de Nacos.
Paso 2: Crear una configuración local
Abra la consola de Nacos Server en http://127.0.0.1:8848/nacos. El nombre de usuario y la contraseña predeterminados son ambos
nacos.En el panel de navegación izquierdo, elija ConfigManagement > Configurations.
Haga clic en el icono
de la esquina superior derecha para crear una configuración.-
En la página Create Configuration, establezca los siguientes parámetros y haga clic en Publish:
Parámetro
Valor
Data ID
nacos-config-example.propertiesGroup
DEFAULT_GROUPFormat
PropertiesConfiguration Content
test.name=nacos-config-test
Cómo se asigna el Data ID a su aplicación
El Data ID sigue esta convención de nomenclatura:
${prefix}-${spring.profiles.active}.${file-extension}
|
Componente |
Valor predeterminado |
Propiedad de anulación |
|
|
Valor de |
|
|
|
Perfil actual de Spring. Cuando está vacío, se omite el guion: |
-- |
|
|
|
|
En este tutorial, el nombre de la aplicación es nacos-config-example sin ningún perfil activo, por lo que el Data ID es nacos-config-example.properties.
Paso 3: Compilar la aplicación Spring Boot
3a. Crear un proyecto Maven
Cree un proyecto Maven llamado nacos-config-example.
3b. Agregar dependencias
Agregue lo siguiente a pom.xml. Este ejemplo utiliza Spring Boot 2.1.4.RELEASE con Spring Cloud Greenwich.SR1:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Compatibilidad de versiones
Seleccione la versión de Spring Cloud Alibaba que corresponda a su línea de lanzamiento de Spring Cloud:
|
Línea de lanzamiento de Spring Cloud |
Versión de Spring Cloud Alibaba |
|
Greenwich |
2.1.1.RELEASE |
|
Finchley |
2.0.1.RELEASE |
|
~~Edgware~~ |
~~1.5.1.RELEASE~~ (descontinuada; no utilizar) |
3c. Crear la clase de inicio
Dentro de src/main/java, cree el paquete com.aliware.edas y agregue la siguiente clase NacosConfigExampleApplication:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class NacosConfigExampleApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigExampleApplication.class, args);
}
}
3d. Crear un controlador
En el mismo paquete, cree una clase EchoController. La anotación @RefreshScope habilita la actualización dinámica de la configuración: cuando test.name cambia en Nacos, la aplicación obtiene el nuevo valor sin necesidad de reiniciarla.
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope
public class EchoController {
@Value("${test.name}")
private String userName;
@RequestMapping(value = "/")
public String echo() {
return userName;
}
}
@RefreshScope recrea el bean cuando Nacos distribuye un cambio de configuración. El listener de actualización automática está habilitado de forma predeterminada (spring.cloud.nacos.config.refresh.enabled=true).
3e. Configurar la dirección de Nacos Server
Dentro de src/main/resources, cree un archivo bootstrap.properties:
spring.application.name=nacos-config-example
server.port=18081
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
127.0.0.1:8848-- la dirección de Nacos Server.18081-- el puerto de la aplicación.
Si Nacos Server se ejecuta en otra máquina, actualice la dirección y el puerto. Consulte Configuration reference para ver propiedades adicionales.
Paso 4: Ejecutar y comprobar localmente
Comprobar la configuración inicial
Ejecute el método
mainenNacosConfigExampleApplicationpara iniciar la aplicación.Abra http://127.0.0.1:18081 en un navegador. La respuesta será
nacos-config-test, que corresponde al valor detest.nameestablecido en el Paso 2.
Comprobar la actualización dinámica de la configuración
En la consola de Nacos Server, vaya a ConfigManagement > Configurations y edite la entrada
nacos-config-example.properties.Cambie
test.name=nacos-config-testportest.name=nacos-config-updatedy haga clic en Publish.Actualice http://127.0.0.1:18081. La respuesta ahora mostrará
nacos-config-updated, lo cual confirma que@RefreshScopefunciona sin reiniciar la aplicación.
Paso 5: Desplegar en EDAS
Reproduzca la misma configuración en EDAS antes del despliegue para que la aplicación pueda leerla desde el módulo de gestión de configuraciones de EDAS.
5a. Crear la configuración en EDAS
Inicie sesión en la consola de EDAS.
En el panel de navegación izquierdo, elija Application Management > Microservice Configurations.
En la página Configurations, seleccione una Region en la barra de navegación superior y un Microservices Namespace en el menú desplegable. Luego haga clic en Create Configuration.
-
En el panel Create Configuration, establezca los mismos parámetros que en la configuración local de Nacos y haga clic en Create:
Parámetro
Valor
Data ID
nacos-config-example.propertiesGroup
DEFAULT_GROUPFormat
PropertiesConfiguration Content
test.name=nacos-config-test
Los valores de Region y Microservice Namespace se heredan de la página Configurations y no pueden modificarse en este panel.
5b. Desplegar la aplicación
Despliegue la aplicación en EDAS. Elija un método de despliegue según su infraestructura:
Optimizar el desarrollo de local a nube
Una vez que su aplicación se ejecute en EDAS, podrá omitir la configuración local de Nacos Server en iteraciones posteriores. EDAS ofrece una función de interconexión local-nube que permite a una aplicación ejecutada localmente:
Leer configuraciones directamente del módulo de gestión de configuraciones de EDAS
Invocar otras aplicaciones desplegadas en la nube y recibir llamadas de estas
Esto le permite aprovechar todo el comportamiento de ejecución de EDAS sin tener que redesplegar ante cada cambio.Para obtener más información sobre la interconexión local-nube, consulte 端云互联简介.
Referencia de configuración
Agregue cualquiera de estas propiedades a bootstrap.properties para personalizar el comportamiento de Nacos Config:
|
Elemento de configuración |
Clave |
Valor predeterminado |
Descripción |
|
Dirección del servidor |
|
-- |
Dirección de Nacos Server (obligatorio) |
|
Prefijo del Data ID |
|
|
Parte del prefijo del Data ID |
|
Grupo |
|
|
Grupo de configuración |
|
Sufijo y formato del Data ID |
|
|
Formato de archivo del contenido de configuración. Compatible con: |
|
Codificación |
|
|
Codificación de caracteres del contenido de configuración |
|
Tiempo de espera |
|
|
Tiempo de espera para obtener configuraciones, en milisegundos |
|
Namespace |
|
-- |
Aísla configuraciones entre entornos (desarrollo, pruebas, producción) |
|
Ruta de contexto |
|
-- |
Ruta relativa de la API de Nacos Server |
|
Endpoint |
|
|
Endpoint específico de región para la resolución dinámica de direcciones de servidor |
|
Actualización automática |
|
|
Habilita o deshabilita el listener de cambios de configuración |
Para consultar la lista completa de elementos de configuración, revise la documentación de Spring Cloud Alibaba Nacos Config.