Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 28, 2026

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

Benefícios

O registro e a descoberta de serviços em aplicações Spring Cloud utilizam componentes como Eureka, Consul, ZooKeeper e Redis. Ao 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ócio.

O registro de serviços do SAE oferece todos os recursos do Spring Cloud Alibaba Nacos Discovery e elimina a dependência de múltiplos componentes, como Eureka, Consul, ZooKeeper e Redis.

Após hospedar aplicações Spring Cloud no SAE, concentre-se na lógica das aplicações sem se preocupar com a criação e manutenção do registro e do centro de configuração. Os recursos do SAE, incluindo dimensionamento automático, início e parada rápidos de aplicações em lote e monitoramento, ajudam a reduzir significativamente seus custos de desenvolvimento e O&M.

Se você possui muitas aplicações de microsserviços, utilize 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 Usar um registro de serviços Nacos do MSE.

  • Registro de serviços autogerenciado

    7D79jXUfBL

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

    • Garanta que a rede do SAE e a rede do registro Nacos autogerenciado estejam interconectadas.

    • Para evitar que o comando se torne inválido, não use os parâmetros -D e -XX simultaneamente. 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 e 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 nativo do SAE, adicione os parâmetros de inicialização necessários antes de -jar.

      • Se utilizar uma imagem para implantar a aplicação, adicione -Dnacos.use.endpoint.parsing.rule=false e -Dnacos.use.cloud.namespace.parsing=false ao comando de inicialização do arquivo de imagem. Para saber como criar uma imagem Docker, consulte Exemplo de criação de imagem.

        Veja o código de exemplo abaixo:

        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 utilizar um pacote JAR para implantar a 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 Configurar um comando de inicialização.sc_configure_a_startup_command_for_nacos

  • Registro de serviços nativo do SAE

    x6JeUmPTQf

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

Etapa 1: Obter uma demonstração

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

Etapa 2: Modifique as configurações de 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:

  • Quando você hospeda suas aplicações no SAE após a aprovação nos testes locais.

  • Quando 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
    • Este exemplo utiliza o Spring Cloud Greenwich. 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 seu uso não é recomendado. Para mais informações, consulte Notas de lançamento do Spring Cloud Edgware.

  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                            

    O endereço 127.0.0.1 corresponde ao IP do Nacos Server. Se o Nacos Server estiver implantado em outro servidor físico, altere o endereço IP adequadamente. Caso tenha outros requisitos, adicione as configurações necessárias no arquivo application.properties consultando Itens de configuração.

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

    1. Execute a função main da classe 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 o item service-provider aparecer na Service list e for possível consultar os detalhes do service-provider, o registro foi concluído com sucesso.

Etapa 3: Modifique as configurações de 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:

  • Quando você hospeda suas aplicações no SAE após a aprovação nos testes locais.

  • Quando 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
    • Este exemplo utiliza o Spring Cloud Greenwich. 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 seu uso não é recomendado. Para mais informações, consulte Notas de lançamento do Spring Cloud Edgware.

  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                            

    O endereço 127.0.0.1 corresponde ao IP do Nacos Server. Se o Nacos Server estiver implantado em outro servidor físico, altere o endereço IP adequadamente. Caso tenha outros requisitos, adicione as configurações necessárias no arquivo application.properties consultando Itens de configuração.

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

    1. Execute a função main da classe 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 o item service-consumer aparecer na Service list e for possível consultar os detalhes do service-consumer, o registro foi concluído com sucesso.

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

Visualize no seu computador os resultados do consumo de serviços fornecidos pelo provedor. Inicie o serviço e execute IP+porta/echo-rest/<Variável personalizada> ou IP+porta/echo-feign/<Variável personalizada> para ver os resultados.

  • No Linux, UNIX ou macOS, execute curl http://127.0.0.1:18082/echo-rest/<Variável personalizada> ou curl http://127.0.0.1:18082/echo-feign/<Variável personalizada>.

  • No Windows, insira http://127.0.0.1:18082/echo-rest/<Variável personalizada> ou http://127.0.0.1:18082/echo-feign/<Variável personalizada> no navegador.

Abaixo está um exemplo de consumo de serviço bem-sucedido em um sistema operacional Windows.

Verify the result

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. Também é possível criar uma imagem para a aplicação antes da implantação.

  1. No arquivo pom.xml da aplicação, adicione a configuração a seguir 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 compilados das aplicações provedora e consumidora no SAE. Para mais informações, consulte Implantar aplicações Java usando um pacote JAR.

    Importante
    • O SAE não permite criar uma aplicação vazia. Crie a aplicação no console primeiro para depois enviar dados para ela.

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

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

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

Etapa 6: Verifique o resultado

  1. Vincule uma instância CLB voltada para a Internet ao consumidor e insira o endpoint público especificado para a instância CLB no navegador para acessar a página inicial do consumidor. Para mais informações, consulte Vincular uma instância CLB a uma aplicação e gerar um endereço IP público ou privado para a aplicação.

  2. Na página inicial do consumidor, crie uma solicitação para chamar 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 solicitação de chamada dos serviços do provedor forem exibidos na página Overview, as chamadas foram concluídas 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 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 ENI 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

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

Metadados

spring.cloud.nacos.discovery.metadata

Nenhum

Estes metadados devem ser configurados no formato JSON Map. Especifique metadados relacionados ao serviço conforme 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.

Habilitar integração com Ribbon

ribbon.nacos.enabled

true

Desative a integração com 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

Realize as operações a seguir na aplicação criada.