La lista de servicios de Nacos tiene servicios, pero la lista de configuración no funciona.

Quiero reescribir la configuración del componente de springcloud alibaba e introducir otro servicio renren-product, el centro de configuración y descubrimiento de registro de nacos. Todo salió bien antes, ¡pero no funciona al modificar la configuración del centro de configuración! ! ! Otro código de servicio es el mismo pero funciona. Después de compararlo muchas veces, finalmente descubrí que era un problema de dependencia en el archivo poom. ! Comparta sus ideas de solución.

escena de error

Solicitar
Insertar descripción de la imagen aquí
código de controlador de puerto
Insertar descripción de la imagen aquí
application.properties
Insertar descripción de la imagen aquí
bootstrap.properties
Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí
configuración específica del centro de configuración de nacos
Insertar descripción de la imagen aquí

lista de servicios de nacos
Insertar descripción de la imagen aquí
Si un objeto de instancia se puede regenerar después de eliminar la lista de servicios, significa que no hay problemas para cargar nacos.

Soluciones

Si ve el servicio "gulimall-product" en la lista de servicios de Nacos, pero el centro de configuración de Nacos no tiene ningún efecto en su configuración, puede haber algunas de las siguientes situaciones:

  1. El nombre de la configuración no coincide: asegúrese de que el nombre del elemento de configuración (ID de datos) en el Centro de configuración de Nacos coincida con el nombre de la aplicación o el nombre del grupo del servicio "gulimall-product". De forma predeterminada, Nacos usa el nombre del servicio como nombre del grupo, por lo que el ID de datos debe tener gulimall-product.propertiesun formato similar a .

  2. Configure el alcance efectivo: asegúrese de que el alcance efectivo del elemento de configuración sea correcto. En Nacos, los elementos de configuración se pueden establecer como configuración global o configuración para servicios específicos. Si el alcance efectivo del elemento de configuración se establece en global, se aplicará a todos los servicios, no solo al "producto gulimall".

  3. Versión de configuración: compruebe si la versión del elemento de configuración coincide con la versión del servicio "gulimall-product". Si especifica una versión en el elemento de configuración, asegúrese de que el servicio también utilice la misma versión.

  4. Actualización de configuración: si modifica la configuración en el Centro de configuración de Nacos pero no activa una actualización de configuración, es posible que el servicio aún use la configuración anterior. Asegúrese de que el mecanismo de actualización de la configuración esté configurado correctamente y que el servicio pueda recibir notificaciones de cambios de configuración.

  5. Lectura de la configuración del servicio: asegúrese de que el servicio "gulimall-product" lea correctamente los elementos de configuración al iniciarse. Si el servicio no configura correctamente el cliente del centro de configuración o no maneja la configuración correctamente, es posible que no utilice la configuración del centro de configuración.

  6. Prioridad de los elementos de configuración: Si se han definido ciertas configuraciones en la configuración del servicio, estas configuraciones pueden anular las configuraciones del centro de configuración. Asegúrese de que no haya valores codificados en la configuración local del servicio que entren en conflicto con la configuración del centro de configuración.

  7. Problemas con el Centro de configuración de Nacos: A veces puede haber problemas con el propio Centro de configuración de Nacos, lo que hace que la configuración no se publique o no surta efecto correctamente. Verifique el estado y los registros del Centro de configuración de Nacos para ver si hay algún problema.

Si se eliminan las condiciones anteriores y el problema persiste, se recomienda verificar los registros del servicio para ver si hay errores o advertencias sobre la lectura de la configuración y su entrada en vigor. Al mismo tiempo, asegúrese de que el servicio haya integrado correctamente el cliente del centro de configuración de Nacos y pueda conectarse correctamente al servidor de Nacos y obtener la configuración cuando se inicie la aplicación. Si aún no puede resolver el problema, es posible que deba observar más de cerca el código y la configuración del servicio para determinar la causa raíz del problema.

Archivo POM

Porque los servicios de productos y cupones dependen del servicio común. Entonces no pensé en la configuración del archivo pom. ¡No tengo más remedio que comparar las dependencias de Maven línea por línea! ! Finalmente, se descubrió que el servicio del producto no dependía de este spring-cloud-starter-bootstrappaquete.

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

Lo que es repugnante es que application.propertiesel valor inyectado se establece en . ¡Así que no se informará ningún error! !

Solución de problemas del registro de inicio

Insertar descripción de la imagen aquí
El archivo de configuración no funciona, lo que también se puede ver en el área enmarcada del registro de inicio.

Archivo pom completo

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.atguigu.gulimall</groupId>
    <artifactId>gulimall-product</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gulimall-product</name>
    <description>商品服务</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2021.0.3</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.atguigu.gulimall</groupId>
            <artifactId>gulimall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</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>

</project>

proceso de implementación del centro de configuración de nacos

  • 1. Cómo utilizar nacos como centro de configuración para unificar la gestión de la configuración
  • 1), introducir dependencias
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
          </dependency>
  • 2) Crea un bootstrap.properties
  •  spring.application.name=gulimall-coupon
    
  •  spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    

¡Recordar! ¡Recordar! ¡Recordar! Compruebe si el archivo pom está configurado para cargar el paquete bootstrap.properties

  • 3) Debe agregar un conjunto de datos (ID de datos) gulimall-coupon.properties al centro de configuración de forma predeterminada. Reglas predeterminadas, nombre de la aplicación.properties
  • 4) Agregue cualquier configuración al nombre de la aplicación.properties
  • 5), obtenga y configure dinámicamente la capa Controlador para agregar
  •  @RefreshScope:动态获取并刷新配置
    
  •  @Value("${配置项的名}"):获取到配置
    

Si se configuran los mismos elementos tanto en el centro de configuración como en el archivo de configuración de la aplicación actual, la configuración en el centro de configuración tendrá prioridad.

Supongo que te gusta

Origin blog.csdn.net/qq_41398619/article/details/133101963
Recomendado
Clasificación