Todos los productos
Search
Centro de documentos

Serverless App Engine:Alojar aplicaciones Dubbo en SAE

Última actualización: Sep 05, 2026

Este tema le guía paso a paso para compilar localmente una aplicación de microservices Dubbo de ejemplo con configuración XML y desplegarla en Serverless App Engine (SAE). La aplicación consta de un proveedor de servicios y un consumidor de servicios, ambos con Nacos como registro de servicios. Tras el despliegue, SAE reemplaza automáticamente la dirección del registro local de Nacos, por lo que no es necesario modificar la configuración.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Maven instalado y configurado en sus variables de entorno

  • Un servidor Nacos local ejecutándose en modo independiente (consulte los pasos a continuación)

Configurar Nacos Server

  1. Descargue y descomprima el paquete de Nacos Server.

  2. Vaya al directorio nacos/bin e inicie Nacos Server:

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

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

standalone inicia Nacos en modo independiente en lugar de modo clúster. Si al hacer doble clic en startup.cmd en Windows se produce un error, abra el archivo y establezca MODE="standalone" manualmente. Para más detalles, consulte Inicio rápido de Nacos .

Nota sobre versiones: Dubbo 2.7.x y Dubbo 3.0.x llegaron al final de su ciclo de vida en marzo de 2023. Este tema utiliza Dubbo 3.2.15.

Paso 1: Crear un proveedor

Cree un proyecto Maven localmente, defina la interfaz del servicio, configure el registro del servicio basado en XML e inicie el proveedor.

1.1 Crear un proyecto Maven y agregar dependencias

  1. Utilice un IDE (como IntelliJ IDEA o Eclipse) para crear un proyecto Maven.

  2. Agregue las siguientes dependencias a 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 la interfaz del servicio

Todos los servicios Dubbo se definen mediante interfaces.

  1. En src/main/java, cree el paquete com.alibaba.edas.

  2. En com.alibaba.edas, cree la interfaz IHelloService:

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
  3. En com.alibaba.edas, cree la clase de implementación IHelloServiceImpl:

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

1.3 Configurar el servicio Dubbo

  1. En src/main/resources, cree provider.xml.

  2. Agregue los espacios de nombres XML de Spring y 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. Exponga la interfaz del servicio y apunte al servidor Nacos local:

    Elemento

    Valor

    Nota

    Dirección del registro

    nacos://127.0.0.1:8848

    Apunta a su servidor Nacos local. Después de desplegar en SAE, esta dirección se reemplaza automáticamente por el registro gestionado por SAE; no es necesario cambiar el código.

    Puerto de Nacos

    8848

    Fijo; no lo modifique.

    <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" />

    Configuración clave:

1.4 Iniciar el proveedor

  1. En com.alibaba.edas, cree la clase 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. Ejecute el método principal de Provider para iniciar el servicio.

Verificar el proveedor

Inicie sesión en la consola de Nacos en http://127.0.0.1:8848. En el panel de navegación izquierdo, haga clic en Service List.

El servicio com.alibaba.edas.IHelloService aparece en la lista, junto con su Service Group y su Provider IP.

Paso 2: Crear un consumidor

Cree un proyecto Maven independiente para el consumidor, suscríbase al servicio del proveedor y verifique que la llamada funcione localmente.

2.1 Crear un proyecto Maven y agregar dependencias

Siga los mismos pasos que en Paso 1.1 para crear un proyecto Maven y agregar las mismas tres dependencias a pom.xml.

2.2 Definir la interfaz del servicio

  1. En src/main/java, cree el paquete com.alibaba.edas.

  2. En com.alibaba.edas, cree la misma interfaz IHelloService:

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
En producción, defina la interfaz en un módulo compartido y refiriéncela tanto desde el proveedor como desde el consumidor mediante dependencias de Maven. La duplicación de la interfaz en este ejemplo es solo con fines demostrativos.

2.3 Configurar el servicio Dubbo

  1. En src/main/resources, cree consumer.xml.

  2. Agregue los espacios de nombres XML de Spring y Dubbo (igual que en 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. Suscríbase al servicio del proveedor:

    <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 el consumidor

  1. En com.alibaba.edas, cree la clase 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. Ejecute el método principal de Consumer para iniciar el servicio.

Verificar el consumidor

Después del inicio, la consola imprime continuamente:

hello world

Esta salida confirma que el consumidor está llamando correctamente al proveedor.

Inicie sesión en la consola de Nacos en http://127.0.0.1:8848 y haga clic en Services en el panel de navegación izquierdo. Seleccione Callers.

El servicio com.alibaba.edas.IHelloService aparece en la lista, junto con su Service Group y su Subscriber IP.

Paso 3: Desplegar en SAE

Empaquete el proveedor y el consumidor como archivos JAR ejecutables y luego despliéguelos en SAE.

3.1 Agregar el plugin de compilación

Agregue la siguiente configuración de <build> al archivo pom.xml de cada proyecto:

  • Provider — establezca mainClass en 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 — establezca mainClass en 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 Compilar los paquetes JAR

En el directorio de cada proyecto, ejecute:

mvn clean package

Esto genera un JAR ejecutable en el directorio target/.

3.3 Desplegar en SAE

Despliegue ambos paquetes JAR en SAE. Para conocer los pasos de despliegue, consulte Deploy a Java application.

Después del despliegue, SAE reemplaza automáticamente la dirección del registro local de Nacos ( nacos://127.0.0.1:8848 ) por la dirección del registro de servicios gestionado por SAE. No es necesario realizar cambios en sus archivos de configuración.

Pasos siguientes