Todos os produtos
Search
Central de documentação

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

Última atualização: Oct 09, 2026

O registro e a descoberta de serviços de aplicações Spring Cloud eram implementados com componentes como Eureka, Consul e ZooKeeper. Este tópico descreve como implementar o registro e a descoberta de serviços com o Nacos e como hospedar o Nacos no Serverless App Engine (SAE).

Benefícios

O registro e a descoberta de serviços de aplicações Spring Cloud são implementados com componentes como Eureka, Consul, ZooKeeper e Redis. Se você hospedar aplicações Spring Cloud no SAE, basta substituir o registro de serviços e o centro de configuração originais pelo Alibaba Nacos Discovery para registrar e descobrir serviços sem modificar o código de negócios.

O registro de serviços do SAE fornece todos os recursos do Spring Cloud Alibaba Nacos Discovery e elimina a dependência de vários componentes como Eureka, Consul, ZooKeeper e Redis.

Após hospedar as aplicações Spring Cloud no SAE, você pode focar na lógica das aplicações Spring Cloud sem se preocupar com a criação e a manutenção do registro e do centro de configuração. Os recursos fornecidos pelo SAE, incluindo Auto Scaling, inicialização e interrupção rápida de aplicações em lote e monitoramento de aplicações, ajudam a reduzir significativamente seus custos de desenvolvimento e O&M.

Se você tiver um grande número de aplicações de microsserviços, pode usar um dos seguintes tipos de registros de serviços, listados em ordem decrescente de recomendação:

  • Registro de serviços comercial (MSE)

    ZF182Dl2pw

    Para obter informações sobre como criar e implantar um registro Nacos do MSE, consulte Using an MSE Nacos service registry.

  • Registro de serviços autogerenciado

    7D79jXUfBL

    Ao criar e implantar um registro Nacos autogerenciado, observe os seguintes itens:

    • Certifique-se de que a rede do SAE e a rede do registro Nacos autogerenciado estejam interconectadas.

    • Para evitar a invalidação do comando, certifique-se de não usar os parâmetros -D e -XX ao mesmo tempo. Código de exemplo:

      • 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
    • Caso utilize um registro de serviços autogerenciado, recomendamos usar uma imagem ou um pacote JAR para implantar a aplicação, além de configurar os seguintes parâmetros de inicialização: -Dnacos.use.endpoint.parsing.rule=false e -Dnacos.use.cloud.namespace.parsing=false.

      Importante

      Para usar um registro não integrado ao SAE, adicione os parâmetros de inicialização necessários antes de -jar.

      • Se você usar uma imagem para implantar uma aplicação, adicione -Dnacos.use.endpoint.parsing.rule=false e -Dnacos.use.cloud.namespace.parsing=false ao comando de inicialização da imagem. Para obter informações sobre como criar uma imagem Docker, consulte Example of image creation.

        Exemplo de código:

        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
      • Se você usar um pacote JAR para implantar uma aplicação, acesse a seção Startup Command Settings no console do SAE. Em seguida, insira -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false no campo options Settings. A figura a seguir mostra o comando de inicialização configurado para implantar uma aplicação Java no ambiente de execução Open JDK 8. Para mais informações, consulte Configure a startup command.sc_configure_a_startup_command_for_nacos

  • Registro de serviços integrado do SAE

    x6JeUmPTQf

    O SAE fornece os recursos de endereçamento automático do Nacos Server para aplicações de microsserviços Java. Use o recurso de service registration and discovery do SAE para configurar um registro de serviços. Para mais informações, consulte Use the SAE built-in Nacos registry.

Etapa 1: Obter uma aplicação de demonstração

eureka-service-provider e eureka-service-consumer são pacotes de aplicações de demonstração de microsserviços do SAE. O Eureka está integrado ao consumidor e ao provedor. O consumidor consome os serviços fornecidos pelo provedor.

Etapa 2: Modificar as configurações do registro de serviços do provedor

Para hospedar o provedor nativo da nuvem no SAE, modifique a dependência POM no provedor e especifique um endereço IP para o Nacos Server.

Nota

Especifique um endereço IP para o Nacos Server nos seguintes cenários:

  • Você hospeda suas aplicações no SAE após elas passarem nos testes locais.

  • O registro de serviços do SAE é um registro Nacos autogerenciado.

  1. Adicione a seguinte dependência ao arquivo pom.xml.

    Abra o arquivo pom.xml do provedor. Substitua spring-cloud-starter-netflix-eureka-client por spring-cloud-starter-alibaba-nacos-discovery e configure a versão do Nacos Server.

    Antes da substituição:

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

    Após a substituição:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Nota
    • O Spring Cloud Greenwich é usado neste exemplo. A versão do spring-cloud-starter-alibaba-nacos-discovery é 2.1.1.RELEASE.

    • Se você usar o Spring Cloud Finchley, a versão do spring-cloud-starter-alibaba-nacos-discovery será 2.0.1.RELEASE.

    • Caso utilize o Spring Cloud Edgware, a versão do spring-cloud-starter-alibaba-nacos-discovery será 1.5.1.RELEASE. O suporte a esta versão foi encerrado e não a recomendamos. Para mais informações, consulte as Spring Cloud Edgware Release Notes.

  2. Especifique um endereço IP para o Nacos Server.

    Abra o arquivo application.properties em src\main\resources e especifique um endereço IP para o Nacos Server.

    Antes da modificação:

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

    Após a modificação:

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

    127.0.0.1 é o endereço IP do Nacos Server. Se o Nacos Server estiver implantado em outro servidor físico, altere o endereço IP de acordo. Caso tenha outros requisitos, adicione as configurações necessárias no arquivo application.properties. Para isso, consulte Configuration items.

  3. Verifique o serviço da aplicação.

    1. Execute a função main de ProviderApplication no projeto nacos-service-provider para iniciar o provedor.

    2. Faça login no console do Nacos Server instalado no seu computador acessando 127.0.0.1:8848/nacos. No painel de navegação à esquerda, escolha Service management > Service list.

      Nota

      O nome de usuário e a senha padrão para fazer login no console do Nacos Server são nacos.

      Se service-provider for exibido em Service list e você conseguir consultar os detalhes de service-provider, o service-provider foi registrado com sucesso.

Etapa 3: Modificar as configurações do registro de serviços do consumidor

Para hospedar o consumidor nativo da nuvem no SAE, modifique a dependência POM no consumidor e especifique um endereço IP para o Nacos Server.

Nota

Especifique um endereço IP para o Nacos Server nos seguintes cenários:

  • Você hospeda suas aplicações no SAE após elas passarem nos testes locais.

  • O registro de serviços do SAE é um registro Nacos autogerenciado.

  1. Adicione a seguinte dependência ao arquivo pom.xml.

    Abra o arquivo pom.xml do consumidor. Substitua spring-cloud-starter-netflix-eureka-client por spring-cloud-starter-alibaba-nacos-discovery e configure a versão do Nacos Server.

    Antes da substituição:

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

    Após a substituição:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Nota
    • O Spring Cloud Greenwich é usado neste exemplo. A versão do spring-cloud-starter-alibaba-nacos-discovery é 2.1.1.RELEASE.

    • Se você usar o Spring Cloud Finchley, a versão do spring-cloud-starter-alibaba-nacos-discovery será 2.0.1.RELEASE.

    • Caso utilize o Spring Cloud Edgware, a versão do spring-cloud-starter-alibaba-nacos-discovery será 1.5.1.RELEASE. O suporte a esta versão foi encerrado e não a recomendamos. Para mais informações, consulte as Spring Cloud Edgware Release Notes.

  2. Especifique um endereço IP para o Nacos Server.

    Abra o arquivo application.properties em src\main\resources e especifique um endereço IP para o Nacos Server.

    Antes da modificação:

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

    Após a modificação:

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

    127.0.0.1 é o endereço IP do Nacos Server. Se o Nacos Server estiver implantado em outro servidor físico, altere o endereço IP de acordo. Caso tenha outros requisitos, adicione as configurações necessárias no arquivo application.properties. Para isso, consulte Configuration items.

  3. Verifique o serviço da aplicação.

    1. Execute a função main de ConsumerApplication no projeto nacos-service-consumer para iniciar o consumidor.

    2. Faça login no console do Nacos Server instalado no seu computador acessando 127.0.0.1:8848/nacos. No painel de navegação à esquerda, escolha Service management > Service list.

      Nota

      O nome de usuário e a senha padrão para fazer login no console do Nacos Server são nacos.

      Se service-consumer for exibido em Service list e você conseguir consultar os detalhes de service-consumer, o service-consumer foi registrado com sucesso.

Etapa 4: Visualizar os resultados do consumo de serviços do provedor pelo consumidor

Visualize os resultados do consumo de serviços fornecidos pelo provedor no seu computador. Inicie o serviço e execute IP+port/echo-rest/<Custom variable> ou IP+port/echo-feign/<Custom variable> para conferir os resultados.

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

  • Para Windows, insira http://127.0.0.1:18082/echo-rest/<Custom variable> ou http://127.0.0.1:18082/echo-feign/<Custom variable> no navegador.

Confira a seguir um exemplo de consumo de serviço bem-sucedido em um sistema operacional Windows.

Etapa 5: Implantar aplicações no SAE

Esta seção apresenta um exemplo de como compilar o programa local em um pacote JAR executável. Você também pode criar uma imagem para a aplicação antes da implantação.

  1. No arquivo pom.xml da aplicação, adicione a seguinte configuração e execute o comando mvn clean package para compilar o programa local em um pacote JAR executável.

    <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. Implante os pacotes das aplicações do provedor e do consumidor compilados no SAE. Para mais informações, consulte Deploy Java applications by using a JAR package.

    Importante
    • O SAE não permite criar uma aplicação vazia. Crie uma aplicação no console e, em seguida, envie os dados para a aplicação.

    • Se você usar um pacote JAR para implantar as aplicações, defina Application Runtime Environment como Standard Java Application Runtime Environment.

    • Caso utilize um pacote WAR para implantar as aplicações, defina Application Runtime Environment como apache-tomcat-XXX.

    Ao implantar aplicações no SAE, o registro de serviços do SAE define automaticamente o endereço IP do Nacos Server, a porta do serviço, o namespace, o AccessKey ID e o AccessKey secret com alta prioridade. Mantenha ou exclua as configurações padrão conforme suas necessidades.

Etapa 6: Verificar o resultado

  1. Vincule uma instância de CLB voltada para a internet ao consumidor e insira o endpoint público especificado para a instância de CLB no navegador para acessar a página inicial do consumidor. Para mais informações, consulte Bind a CLB instance to an application and generate a public or private IP address for the application.

  2. Na página inicial do consumidor, crie uma requisição para chamar os serviços do provedor. Faça login no console do SAE. No painel de navegação à esquerda, escolha Applications > Applications. Na barra de navegação superior, selecione uma região.

  3. Na página Applications, selecione um consumidor e acesse a página Basic Information.

  4. No painel de navegação à esquerda, escolha Application Monitoring > Application Overview para visualizar os dados gerais de chamadas de serviço.

    Se os dados sobre a requisição para chamar os serviços do provedor forem exibidos na página Overview, os serviços foram chamados com sucesso.

Itens de configuração

Item de configuração

Chave

Valor padrão

Descrição

Endereço IP do servidor

spring.cloud.nacos.discovery.server-addr

Nenhum

O endereço IP e a porta nos quais o Nacos Server escuta.

Nome do serviço

spring.cloud.nacos.discovery.service

${spring.application.name}

O nome do serviço.

Nome da interface de rede (NIC)

spring.cloud.nacos.discovery.network-interface

Nenhum

Se nenhum endereço IP for especificado, o endereço IP da NIC será registrado. Se este item não for configurado, o endereço IP da primeira NIC será usado por padrão.

Endereço IP registrado

spring.cloud.nacos.discovery.ip

Nenhum

O endereço IP registrado tem prioridade maior que o nome da NIC durante a configuração.

Porta registrada

spring.cloud.nacos.discovery.port

-1

Não é necessário configurar a porta registrada. O sistema detecta a porta automaticamente.

Namespace

spring.cloud.nacos.discovery.namespace

Nenhum

O isolamento do registro em diferentes ambientes. Por exemplo, o isolamento de recursos, incluindo configurações e serviços, nos ambientes de desenvolvimento, teste e produção.

Metadados

spring.cloud.nacos.discovery.metadata

Nenhum

Esses metadados devem ser configurados no formato JSON Map. Especifique os metadados relacionados ao serviço de acordo com os requisitos do seu negócio.

Cluster

spring.cloud.nacos.discovery.cluster-name

DEFAULT

O nome do cluster Nacos.

Endpoint

spring.cloud.nacos.discovery.endpoint

Nenhum

O nome de domínio de um serviço na região. Recupere dinamicamente o endereço IP do servidor com base neste nome de domínio. Não é necessário especificar este item ao implantar uma aplicação no SAE.

Se deve ativar a integração com o Ribbon

ribbon.nacos.enabled

true

Desative a integração com o Ribbon apenas quando necessário.

Para mais informações sobre o Spring Cloud Alibaba Nacos Discovery, consulte Spring Cloud Alibaba Nacos Discovery.

Próximos passos

Você pode executar as seguintes operações na aplicação criada.

  • A aplicação não pode acessar a internet nem ser acessada por ela. Caso queira configurar a rede para a aplicação, consulte Application access.

  • Para mais informações, consulte O&M management.