Compartir tecnología

Notas de estudio de Grain Mall-23-Componentes distribuidos-SpringCloud Alibaba-Nacos Configuration Center-Ejemplo simple

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Aprendí a usar Nacos como centro de registro antes. En esta sección, aprenderemos otra función principal de Nacos:配置中心

1. Introducción al Centro de configuración de Nacos

Nacos es una plataforma fácil de usar para el descubrimiento dinámico de servicios y la gestión de la configuración. Como centro de configuración, Nacos proporciona las siguientes funciones y ventajas principales:

  1. Gestión de configuración dinámica: Nacos permite a los usuarios modificar y enviar información de configuración dinámicamente sin reiniciar el servicio, logrando actualizaciones de configuración en tiempo real.

  2. Configurar almacenamiento centralizado: Nacos proporciona un almacenamiento de configuración centralizado, lo que hace que la información de configuración sea fácil de administrar y mantener, y evita el problema de que la configuración esté dispersa en diferentes entornos y sistemas.

  3. Configurar el control de versiones: Nacos admite el control de versiones de configuración, que puede rastrear el historial de cambios de configuración y facilitar las operaciones de reversión.

  4. Configurar compartir: Nacos permite compartir la configuración entre servicios, mejorando la reutilización de la configuración y reduciendo la redundancia.

  5. Configurar aislamiento: A través del concepto de espacio de nombres, Nacos admite el aislamiento de configuración de diferentes entornos (como desarrollo, pruebas y producción) para garantizar que las configuraciones entre entornos no interfieran entre sí.

  6. Configurar escuchar y empujar: Nacos proporciona una función de monitoreo de configuración cuando la configuración cambia, puede enviar actualizaciones activamente al cliente para lograr una actualización en caliente de la configuración.

  7. seguridad: Nacos admite el control de acceso a la configuración y la gestión de permisos para garantizar que solo los usuarios autorizados puedan acceder o modificar las configuraciones.

  8. Soporte para múltiples entornos: Nacos admite una variedad de entornos de implementación y puede satisfacer la gestión de configuración de diferentes escalas y necesidades.

  9. Integrar con Spring Cloud: Nacos está estrechamente integrado con Spring Cloud y proporciona spring-cloud-starter-alibaba-nacos-config y otros componentes, lo que simplifica el proceso de uso del centro de configuración de Nacos en las aplicaciones Spring Cloud.

  10. Facilidad de uso: Nacos proporciona una interfaz de usuario amigable, lo que hace que ver, modificar y administrar configuraciones sea intuitivo y simple.

Como centro de configuración, Nacos es adecuado para arquitectura de microservicios, aplicaciones nativas de la nube y sistemas distribuidos que requieren una gestión de configuración dinámica. Al gestionar las configuraciones de forma centralizada, Nacos ayuda a las empresas a mejorar la eficiencia y la seguridad de la gestión de la configuración, al tiempo que simplifica el trabajo de desarrollo, operación y mantenimiento.

2. Instrucciones de uso del Centro de Configuración de Nacos

Las instrucciones de uso están registradas en detalle en la documentación oficial, haga clic para ver la documentaciónhttps://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html

1. Declarar la dependencia de Maven en el centro de configuración.

Para utilizar el centro de configuración, primero debe agregar dependencias.

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

En el proyecto Guli Mall, debido a que todos los servicios deben utilizar el centro de configuración de Nacos, esta dependencia se agrega al módulo común.

2. Configure la dirección y el nombre de la aplicación del servidor Nacos en bootstrap.properties

En el directorio de recursos del proyecto o módulo, declare la dirección y el nombre del servicio del servidor Nacos en bootstrap.properties.

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
  • 1
  • 2

3. Cree un archivo de configuración en la interfaz de la lista de configuración de Nacos.

Insertar descripción de la imagen aquí

Después de hacer clic en Crear configuración, aparecerá la siguiente página.

Insertar descripción de la imagen aquí

  • ① El ID de datos equivale al nombre del archivo y debe incluir el nombre del servicio, como gulimall-coupon.properties
  • ② El tipo de archivo de configuración admite varios tipos. Para los microservicios, suele ser yaml o properties.
  • ③ El cuadro negro contiene la información de configuración que se debe completar.

existir Nacos Spring Cloud medio,Data Id El formato completo de es el siguiente:

${prefix}-${spring.profiles.active}.${file-extension}
  • 1
  • prefix El valor predeterminado esspring.application.name El valor también se puede pasar a través del elemento de configuración.spring.cloud.nacos.config.prefixpara configurar.
  • spring.profiles.active Es decir, correspondiente al entorno actual.profile , consulte la documentación de Spring Boot para obtener más detalles. Nota: cuandospring.profiles.active Cuando está vacío, el conector correspondiente no existirá y el formato de empalme de dataId se convierte en${prefix}.${file-extension}
  • file-exetension Para configurar el formato de datos del contenido, puede pasar el elemento de configuraciónspring.cloud.nacos.config.file-extension para configurar.Actualmente solo admiteproperties yyaml tipo.

tres, prueba

1. Coloque la información de configuración en el proyecto.

Primero colocamos la información en el archivo de configuración del proyecto y configuramos la siguiente información en el archivo de configuración application.properties del módulo de cupón:

coupon.user.name=lcy
coupon.age=22
  • 1
  • 2

Insertar descripción de la imagen aquí

2. Escribe el código de prueba.

Agregue un método en el Controlador para usar la información de configuración en el archivo de configuración.

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Tenga en cuenta que en el código anterior, inyectamos la configuración en el archivo de configuración en la variable de clase a través de la anotación @Value y luego hacemos referencia a ella en el método.

3. Prueba

Después de iniciar el servicio, ingrese la siguiente dirección en su navegador.

http://localhost:7000/coupon/coupon/test
  • 1

El resultado es el siguiente, lo que indica que se ha leído la información del archivo de configuración.
Insertar descripción de la imagen aquí

4. Configure la información de configuración en el centro de configuración.

Tome el servicio de cupones como ejemplo para configurar.
Insertar descripción de la imagen aquí

Haga clic en el botón editar en el lado derecho de la lista de archivos de configuración para ingresar a la interfaz de edición.

Insertar descripción de la imagen aquí

Tenga en cuenta que para aclarar la diferencia y la conexión entre el archivo de configuración del centro de configuración y el archivo de configuración local, no eliminamos la configuración local en el paso anterior.

Actualmente, solo hay una configuración configurada en el centro de configuración. Esta configuración también está disponible en la configuración local, pero el valor es diferente.coupon.user.name=lcy, el centro de configuración escoupon.user.name=lcy2

Actualice el navegador después de reiniciar el servicio. Los resultados son los siguientes.

Insertar descripción de la imagen aquí
Obviamente, el valor del nombre se toma del centro de configuración en lugar del archivo de configuración local.El valor en el centro de configuración sobrescribirá el valor en el archivo de configuración local.

registro de errores

Registro de errores del centro de configuración de Guli Mall