Todos os produtos
Search
Central de documentação

Serverless App Engine:Hospede aplicações Dubbo no SAE

Última atualização: Jun 28, 2026

Este tópico orienta você na criação local de uma aplicação de exemplo de microsserviço Dubbo com configuração XML e na sua implantação no Serverless App Engine (SAE). A aplicação é composta por um provedor de serviço e um consumidor de serviço, ambos utilizando o Nacos como registro de serviço. Após a implantação, o SAE substitui automaticamente o endereço do registro Nacos local, sem necessidade de alterações na configuração.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Maven instalado e configurado nas variáveis de ambiente

  • Um Nacos Server local executando em modo standalone (veja as etapas abaixo)

Configure o Nacos Server

  1. Baixe e descompacte o pacote do Nacos Server.

  2. Acesse o diretório nacos/bin e inicie o Nacos Server:

    • Linux, Unix ou macOS: ``bash sudo sh startup.sh -m standalone ``

    • Windows: ``bash startup.cmd -m standalone ``

standalone inicia o Nacos em modo standalone, em vez de modo cluster. Se clicar duas vezes no startup.cmd no Windows falhar, abra o arquivo e defina MODE="standalone" manualmente. Para detalhes, consulte Quick Start for Nacos .

Nota sobre versão: O Dubbo 2.7.x e o Dubbo 3.0.x atingiram o fim da vida útil em março de 2023. Este tópico utiliza o Dubbo 3.2.15.

Etapa 1: Crie um provedor

Crie um projeto Maven localmente, defina a interface de serviço, configure o registro de serviço baseado em XML e inicie o provedor.

1,1 Crie um projeto Maven e adicionar dependências

  1. Utilize uma IDE (como IntelliJ IDEA ou Eclipse) para criar um projeto Maven.

  2. Adicione as seguintes dependências ao pom.xml:

    <dependencies>
    
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>3.2.15</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>3.2.15</version>
        </dependency>
    
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>

1,2 Definir a interface de serviço

Todos os serviços Dubbo são definidos por meio de interfaces.

  1. Em src/main/java, crie o pacote com.alibaba.edas.

  2. Dentro de com.alibaba.edas, crie a interface IHelloService:

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
  3. Ainda em com.alibaba.edas, crie a classe de implementação IHelloServiceImpl:

    package com.alibaba.edas;
    
    public class IHelloServiceImpl implements IHelloService {
        public String sayHello(String str) {
            return "hello " + str;
        }
    }

1,3 Configure o serviço Dubbo

  1. No diretório src/main/resources, crie o arquivo provider.xml.

  2. Adicione os namespaces XML do Spring e do Dubbo:

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  3. Exponha a interface de serviço e aponte para o Nacos Server local:

    Item

    Valor

    Observação

    Endereço do registro

    nacos://127.0.0.1:8848

    Aponta para o seu Nacos Server local. Após a implantação no SAE, este endereço é substituído automaticamente pelo registro gerenciado pelo SAE — nenhuma alteração de código é necessária.

    Porta do Nacos

    8848

    Fixa; não altere.

    <dubbo:application name="demo-provider"/>
    
    <dubbo:protocol name="dubbo" port="28082"/>
    
    <dubbo:service interface="com.alibaba.edas.IHelloService" ref="helloService"/>
    
    <bean id="helloService" class="com.alibaba.edas.IHelloServiceImpl"/>
    
    <dubbo:registry address="nacos://127.0.0.1:8848" />

    Configuração principal:

1,4 Iniciar o provedor

  1. Em com.alibaba.edas, crie a classe Provider:

    package com.alibaba.edas;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Provider {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"});
            context.start();
            System.in.read();
        }
    }
  2. Execute o método main da classe Provider para iniciar o serviço.

Verifique o provedor

Faça login no console do Nacos em http://127.0.0.1:8848. No painel de navegação à esquerda, clique em Service List.

O serviço com.alibaba.edas.IHelloService aparece na lista, juntamente com seu Service Group e Provider IP.

Etapa 2: Crie um consumidor

Crie um projeto Maven separado para o consumidor, assine o serviço do provedor e verifique se a chamada funciona localmente.

2,1 Crie um projeto Maven e adicionar dependências

Siga as mesmas etapas da Etapa 1,1 para criar um projeto Maven e adicione as mesmas três dependências ao pom.xml.

2,2 Definir a interface de serviço

  1. Em src/main/java, crie o pacote com.alibaba.edas.

  2. Dentro de com.alibaba.edas, crie a mesma interface IHelloService:

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
Em produção, defina a interface em um módulo compartilhado e referencie-a tanto no provedor quanto no consumidor por meio de dependências Maven. A duplicação da interface aqui serve apenas para fins de demonstração.

2,3 Configure o serviço Dubbo

  1. No diretório src/main/resources, crie o arquivo consumer.xml.

  2. Adicione os namespaces XML do Spring e do Dubbo (igual ao provider.xml):

    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  3. Assine o serviço do provedor:

    <dubbo:application name="demo-consumer"/>
    
    <dubbo:registry address="nacos://127.0.0.1:8848"/>
    
    <dubbo:reference id="helloService" interface="com.alibaba.edas.IHelloService"/>

2,4 Iniciar o consumidor

  1. Em com.alibaba.edas, crie a classe Consumer:

    package com.alibaba.edas;
    
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import java.util.concurrent.TimeUnit;
    
    public class Consumer {
        public static void main(String[] args) throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"consumer.xml"});
            context.start();
            while (true) {
                try {
                    TimeUnit.SECONDS.sleep(5);
                    IHelloService demoService = (IHelloService)context.getBean("helloService");
                    String result = demoService.sayHello("world");
                    System.out.println(result);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
  2. Execute o método main da classe Consumer para iniciar o serviço.

Verifique o consumidor

Após a inicialização, o console imprime continuamente:

hello world

Essa saída confirma que o consumidor está chamando o provedor com sucesso.

Faça login no console do Nacos em http://127.0.0.1:8848 e clique em Services no painel de navegação à esquerda. Selecione Callers.

O serviço com.alibaba.edas.IHelloService aparece na lista, juntamente com seu Service Group e Subscriber IP.

Etapa 3: Implantar no SAE

Empacote o provedor e o consumidor como arquivos JAR executáveis e implante-os no SAE.

3,1 Adicionar o plugin de build

Adicione a seguinte configuração de <build> ao pom.xml de cada projeto:

  • Provider — defina mainClass como com.alibaba.sae.Provider:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>spring-boot</classifier>
                            <mainClass>com.alibaba.sae.Provider</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  • Consumer — defina mainClass como com.alibaba.sae.Consumer:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>spring-boot</classifier>
                            <mainClass>com.alibaba.sae.Consumer</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

3,2 Gerar os pacotes JAR

No diretório de cada projeto, execute:

mvn clean package

Isso gera um JAR executável no diretório target/.

3,3 Implantar no SAE

Implante ambos os pacotes JAR no SAE. Para etapas de implantação, consulte Implantar uma aplicação Java.

Após a implantação, o SAE substitui automaticamente o endereço do registro Nacos local ( nacos://127.0.0.1:8848 ) pelo endereço do registro de serviço gerenciado pelo SAE. Nenhuma alteração nos arquivos de configuração é necessária.

Próximos passos