Todos los productos
Search
Centro de documentos

Serverless App Engine:Modify service registration and discovery of applications to Nacos

Última actualización: Sep 05, 2026

El registro y descubrimiento de servicios de las aplicaciones Spring Cloud se implementaba mediante componentes como Eureka, Consul y ZooKeeper. Este tema describe cómo implementar el registro y descubrimiento de servicios mediante Nacos y cómo alojar Nacos en Serverless App Engine (SAE).

Beneficios

El registro y descubrimiento de servicios de las aplicaciones Spring Cloud se implementan mediante componentes como Eureka, Consul, ZooKeeper y Redis. Si aloja sus aplicaciones Spring Cloud en SAE, solo necesita reemplazar el registro de servicios y el centro de configuración originales por Alibaba Nacos Discovery para realizar el registro y descubrimiento de servicios sin modificar el código de negocio.

El registro de servicios de SAE proporciona todas las funciones de Spring Cloud Alibaba Nacos Discovery y elimina la dependencia de múltiples componentes como Eureka, Consul, ZooKeeper y Redis.

Después de alojar sus aplicaciones Spring Cloud en SAE, puede concentrarse en desarrollar la lógica de sus aplicaciones Spring Cloud sin preocuparse por la creación y el mantenimiento del registro y el centro de configuración. Las funciones proporcionadas por SAE, que incluyen escalado automático, inicio y detención rápidos de aplicaciones por lotes y monitoreo de aplicaciones, ayudan a reducir significativamente sus costos de desarrollo y operaciones.

Si tiene una gran cantidad de aplicaciones de microservices, puede utilizar uno de los siguientes tipos de registros de servicios, listados en orden descendente según su nivel de recomendación:

  • Registro de servicios comercial (MSE)

    ZF182Dl2pw

    Para obtener información sobre cómo crear y desplegar un registro MSE Nacos, consulte Using an MSE Nacos service registry.

  • Registro de servicios autogestionado

    7D79jXUfBL

    Al crear y desplegar un registro Nacos autogestionado, tenga en cuenta los siguientes puntos:

    • Asegúrese de que la red de SAE y la red del registro Nacos autogestionado estén interconectadas.

    • Para evitar que el comando sea inválido, asegúrese de no utilizar los parámetros -D y -XX simultáneamente. Código de ejemplo:

      • Código original:

        java -Dalicloud.deployment.mode=EDAS_MANAGED -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
      • Código modificado:

        java -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
    • Si utiliza un registro de servicios autogestionado, se recomienda usar una imagen o un paquete JAR para desplegar una aplicación y configurar los siguientes parámetros de inicio: -Dnacos.use.endpoint.parsing.rule=false y -Dnacos.use.cloud.namespace.parsing=false.

      Importante

      Para utilizar un registro no integrado en SAE, debe agregar los parámetros de inicio necesarios antes de -jar.

      • Si utiliza una imagen para desplegar una aplicación, agregue -Dnacos.use.endpoint.parsing.rule=false y -Dnacos.use.cloud.namespace.parsing=false al comando de inicio del archivo de imagen. Para obtener información sobre cómo crear una imagen Docker, consulte Example of image creation.

        El código de ejemplo es el siguiente:

        RUN echo 'eval exec java -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar $CATALINA_OPTS /home/admin/app/hello-edas-0.0.1-SNAPSHOT.jar'> /home/admin/start.sh && chmod +x /home/admin/start.sh
      • Si utiliza un paquete JAR para desplegar una aplicación, vaya a la sección Startup Command Settings en la consola de SAE. Luego, introduzca -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false en el campo options Settings. La siguiente figura muestra el comando de inicio configurado para desplegar una aplicación Java en el entorno de ejecución Open JDK 8. Para obtener más información, consulte Configure a startup command.sc_configure_a_startup_command_for_nacos

  • Registro de servicios integrado en SAE

    x6JeUmPTQf

    SAE proporciona capacidades de direccionamiento automático de Nacos Server para aplicaciones de microservices Java. Puede utilizar la función de service registration and discovery de SAE para configurar un registro de servicios. Para obtener más información, consulte Use the SAE built-in Nacos registry.

Paso 1: Obtener una demo

eureka-service-provider y eureka-service-consumer son paquetes de aplicaciones demo de microservices de SAE. Eureka está integrado tanto en el consumidor como en el proveedor. El consumidor consume los servicios proporcionados por el proveedor.

Paso 2: Modificar las configuraciones del registro de servicios del proveedor

Para alojar el proveedor nativo de la nube en SAE, debe modificar la dependencia POM en el proveedor y especificar una dirección IP para Nacos Server.

Nota

Debe especificar una dirección IP para Nacos Server en los siguientes escenarios:

  • Aloja sus aplicaciones en SAE después de que superen las pruebas locales.

  • El registro de servicios de SAE es un registro Nacos autogestionado.

  1. Agregue la siguiente dependencia al archivo pom.xml.

    Abra el archivo pom.xml del proveedor. Reemplace spring-cloud-starter-netflix-eureka-client por spring-cloud-starter-alibaba-nacos-discovery y configure la versión de Nacos Server.

    Antes del reemplazo:

    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>                            

    Después del reemplazo:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Nota
    • En este ejemplo se utiliza Spring Cloud Greenwich. La versión de spring-cloud-starter-alibaba-nacos-discovery es 2.1.1.RELEASE.

    • Si utiliza Spring Cloud Finchley, la versión de spring-cloud-starter-alibaba-nacos-discovery es 2.0.1.RELEASE.

    • Si utiliza Spring Cloud Edgware, la versión de spring-cloud-starter-alibaba-nacos-discovery es 1.5.1.RELEASE. El soporte para esta versión ha finalizado. No se recomienda su uso. Para obtener más información, consulte Notas de la versión de Spring Cloud Edgware.

  2. Especifique una dirección IP para Nacos Server.

    Abra el archivo application.properties en src\main\resources y especifique una dirección IP para Nacos Server.

    Antes de la modificación:

    spring.application.name=service-provider
    server.port=18081
    eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/                            

    Después de la modificación:

    spring.application.name=service-provider
    server.port=18081
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848                            

    127.0.0.1 es la dirección IP de Nacos Server. Si Nacos Server está desplegado en otro servidor físico, cambie la dirección IP en consecuencia. Si tiene otros requisitos, agregue las configuraciones necesarias en el archivo application.properties consultando Configuration items.

  3. Consulte el servicio de la aplicación.

    1. Ejecute la función main de ProviderApplication en el proyecto nacos-service-provider para iniciar el proveedor.

    2. Inicie sesión en la consola de Nacos Server instalada en su computadora visitando 127.0.0.1:8848/nacos. En el panel de navegación izquierdo, seleccione Service management > Service list.

      Nota

      El nombre de usuario y la contraseña predeterminados para iniciar sesión en la consola de Nacos Server son nacos.

      Si service-provider aparece en Service list y puede consultar los detalles de service-provider, entonces service-provider se ha registrado correctamente.

Paso 3: Modificar las configuraciones del registro de servicios del consumidor

Para alojar el consumidor nativo de la nube en SAE, debe modificar la dependencia POM en el consumidor y especificar una dirección IP para Nacos Server.

Nota

Debe especificar una dirección IP para Nacos Server en los siguientes escenarios:

  • Aloja sus aplicaciones en SAE después de que superen las pruebas locales.

  • El registro de servicios de SAE es un registro Nacos autogestionado.

  1. Agregue la siguiente dependencia al archivo pom.xml.

    Abra el archivo pom.xml del proveedor. Reemplace spring-cloud-starter-netflix-eureka-client por spring-cloud-starter-alibaba-nacos-discovery y configure la versión de Nacos Server.

    Antes del reemplazo:

    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>                            

    Después del reemplazo:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Nota
    • En este ejemplo se utiliza Spring Cloud Greenwich. La versión de spring-cloud-starter-alibaba-nacos-discovery es 2.1.1.RELEASE.

    • Si utiliza Spring Cloud Finchley, la versión de spring-cloud-starter-alibaba-nacos-discovery es 2.0.1.RELEASE.

    • Si utiliza Spring Cloud Edgware, la versión de spring-cloud-starter-alibaba-nacos-discovery es 1.5.1.RELEASE. El soporte para esta versión ha finalizado. No se recomienda su uso. Para obtener más información, consulte Notas de la versión de Spring Cloud Edgware.

  2. Especifique una dirección IP para Nacos Server.

    Abra el archivo application.properties en src\main\resources y especifique una dirección IP para Nacos Server.

    Antes de la modificación:

    spring.application.name=service-consumer
    server.port=18082
    eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/                            

    Después de la modificación:

    spring.application.name=service-consumer
    server.port=18082
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848                            

    127.0.0.1 es la dirección IP de Nacos Server. Si Nacos Server está desplegado en otro servidor físico, cambie la dirección IP en consecuencia. Si tiene otros requisitos, agregue las configuraciones necesarias en el archivo application.properties consultando Configuration items.

  3. Consulte el servicio de la aplicación.

    1. Ejecute la función main de ConsumerApplication en el proyecto nacos-service-consumer para iniciar el consumidor.

    2. Inicie sesión en la consola de Nacos Server instalada en su computadora visitando 127.0.0.1:8848/nacos. En el panel de navegación izquierdo, seleccione Service management > Service list.

      Nota

      El nombre de usuario y la contraseña predeterminados para iniciar sesión en la consola de Nacos Server son nacos.

      Si service-consumer aparece en Service list y puede consultar los detalles de service-consumer, entonces service-consumer se ha registrado correctamente.

Paso 4: Ver los resultados del consumo de servicios del proveedor por parte del consumidor

Verifique los resultados del consumo de servicios proporcionados por el proveedor en su computadora. Inicie el servicio y ejecute IP+port/echo-rest/<Custom variable> o IP+port/echo-feign/<Custom variable> para ver los resultados.

  • Para Linux, UNIX o macOS, ejecute curl http://127.0.0.1:18082/echo-rest/<Custom variable> o curl http://127.0.0.1:18082/echo-feign/<Custom variable>.

  • Para Windows, introduzca http://127.0.0.1:18082/echo-rest/<Custom variable> o http://127.0.0.1:18082/echo-feign/<Custom variable> en el navegador.

A continuación se muestra un ejemplo de consumo de servicios exitoso en un sistema operativo Windows.

Verify the result

Paso 5: Desplegar aplicaciones en SAE

Esta sección proporciona un ejemplo para explicar cómo compilar el programa local en un paquete JAR ejecutable. También puede crear una imagen para la aplicación antes del despliegue.

  1. En el archivo pom.xml de la aplicación, agregue la siguiente configuración y luego ejecute el comando mvn clean package para compilar el programa local en un paquete JAR ejecutable.

    <build>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                 <executions>
                     <execution>
                         <goals>
                             <goal>repackage</goal>
                         </goals>
                     </execution>
                 </executions>
             </plugin>
         </plugins>
     </build>                        
  2. Despliegue los paquetes de aplicaciones del proveedor y del consumidor compilados en SAE. Para obtener más información, consulte Deploy Java applications by using a JAR package.

    Importante
    • SAE no permite crear una aplicación vacía. Debe crear una aplicación en la consola; posteriormente podrá insertar datos en la aplicación.

    • Si utiliza un paquete JAR para desplegar las aplicaciones, establezca Application Runtime Environment en Standard Java Application Runtime Environment.

    • Si utiliza un paquete WAR para desplegar las aplicaciones, establezca Application Runtime Environment en apache-tomcat-XXX.

    Cuando despliega aplicaciones en SAE, el registro de servicios de SAE establece automáticamente la dirección IP de Nacos Server, el puerto de servicio, el namespace, el AccessKey ID y el AccessKey secret con alta prioridad. Puede conservar o eliminar las configuraciones predeterminadas según sus necesidades.

Paso 6: Verificar el resultado

  1. Vincule una instancia CLB orientada a Internet al consumidor e introduzca el endpoint público que especificó para la instancia CLB en el navegador para ir a la página principal del consumidor. Para obtener más información, consulte Bind a CLB instance to an application and generate a public or private IP address for the application.

  2. En la página principal del consumidor, cree una solicitud para llamar a los servicios del proveedor. Inicie sesión en SAE console. En el panel de navegación izquierdo, seleccione Applications > Applications. En la barra de navegación superior, seleccione una región.

  3. En la página Applications, seleccione un consumidor y vaya a la página Basic Information.

  4. En el panel de navegación izquierdo, seleccione Application Monitoring > Application Overview para ver los datos generales de llamadas al servicio.

    Si los datos sobre la solicitud para llamar a los servicios del proveedor se muestran en la página Overview, los servicios se han llamado correctamente.

Elementos de configuración

Elemento de configuración

Clave

Valor predeterminado

Descripción

Dirección IP del servidor

spring.cloud.nacos.discovery.server-addr

Ninguna

La dirección IP y el puerto en los que escucha Nacos Server.

Nombre del servicio

spring.cloud.nacos.discovery.service

${spring.application.name}

El nombre del servicio.

Nombre del controlador de interfaz de red (NIC)

spring.cloud.nacos.discovery.network-interface

Ninguna

Si no se especifican direcciones IP, se registra la dirección IP de la NIC. Si este elemento no está configurado, se utiliza de forma predeterminada la dirección IP de la primera NIC.

Dirección IP registrada

spring.cloud.nacos.discovery.ip

Ninguna

La dirección IP registrada tiene mayor prioridad que el nombre de la ENI durante la configuración.

Puerto registrado

spring.cloud.nacos.discovery.port

-1

No es necesario configurar el puerto registrado. El sistema detecta el puerto automáticamente.

Namespace

spring.cloud.nacos.discovery.namespace

Ninguna

El aislamiento del registro en diferentes entornos. Por ejemplo, el aislamiento de recursos, incluidas configuraciones y servicios, en los entornos de desarrollo, prueba y producción.

Metadatos

spring.cloud.nacos.discovery.metadata

Ninguna

Estos metadatos deben configurarse en formato JSON Map. Puede especificar metadatos relacionados con el servicio según sus requisitos comerciales.

Clúster

spring.cloud.nacos.discovery.cluster-name

DEFAULT

El nombre del clúster de Nacos.

Endpoint

spring.cloud.nacos.discovery.endpoint

Ninguna

El nombre de dominio de un servicio en la región. Puede recuperar dinámicamente la dirección IP del servidor basándose en este nombre de dominio. No es necesario especificar este elemento al desplegar una aplicación en SAE.

Habilitar integración con Ribbon

ribbon.nacos.enabled

true

Deshabilite la integración con Ribbon solo cuando sea necesario.

Para obtener más información sobre Spring Cloud Alibaba Nacos Discovery, consulte Spring Cloud Alibaba Nacos Discovery.

Pasos siguientes

Puede realizar las siguientes operaciones en la aplicación creada.

  • La aplicación no puede acceder a Internet ni ser accedida desde Internet. Si desea configurar la red para la aplicación, consulte Application access.

  • Para obtener más información, consulte O&M management.