Tous les produits
Search
Centre de documentation

Serverless App Engine:Héberger des applications Dubbo sur SAE

Dernière mise à jour :Aug 11, 2026

Cette rubrique explique comment créer localement un exemple d'application microservice Dubbo avec une configuration XML, puis le déployer sur Serverless App Engine (SAE). L'application se compose d'un fournisseur de services et d'un consommateur de services, qui utilisent tous deux Nacos comme registre de services. Après le déploiement, SAE remplace automatiquement l'adresse du registre Nacos local, sans aucune modification de configuration requise.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Maven installé et configuré dans vos variables d'environnement

  • Un serveur Nacos local s'exécutant en mode autonome (voir les étapes ci-dessous)

Configuration du serveur Nacos

  1. Téléchargez et décompressez le package Nacos Server.

  2. Accédez au répertoire nacos/bin et démarrez le serveur Nacos :

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

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

standalone démarre Nacos en mode autonome plutôt qu'en mode cluster. Si le double-clic sur startup.cmd sous Windows échoue, ouvrez le fichier et définissez manuellement MODE="standalone" . Pour plus de détails, consultez Démarrage rapide de Nacos .

Note sur la version : Dubbo 2.7.x et Dubbo 3.0.x ont atteint leur fin de vie en mars 2023. Cette rubrique utilise Dubbo 3.2.15.

Étape 1 : Créer un fournisseur

Créez localement un projet Maven, définissez l'interface de service, configurez l'enregistrement du service basé sur XML et démarrez le fournisseur.

1.1 Créer un projet Maven et ajouter des dépendances

  1. Utilisez un IDE (tel qu'IntelliJ IDEA ou Eclipse) pour créer un projet Maven.

  2. Ajoutez les dépendances suivantes au fichier 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 Définir l'interface de service

Tous les services Dubbo sont définis via des interfaces.

  1. Dans src/main/java, créez le package com.alibaba.edas.

  2. Dans com.alibaba.edas, créez l'interface IHelloService :

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
  3. Dans com.alibaba.edas, créez la classe d'implémentation IHelloServiceImpl :

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

1.3 Configurer le service Dubbo

  1. Dans src/main/resources, créez le fichier provider.xml.

  2. Ajoutez les espaces de noms XML Spring et 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. Exposez l'interface de service et pointez vers le serveur Nacos local :

    Élément Valeur Remarque
    Adresse du registre nacos://127.0.0.1:8848 Pointe vers votre serveur Nacos local. Après le déploiement sur SAE, cette adresse est automatiquement remplacée par le registre géré par SAE, sans modification du code.
    Port Nacos 8848 Fixe ; ne pas modifier.
    <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" />

    Configuration clé :

1.4 Démarrer le fournisseur

  1. Dans com.alibaba.edas, créez la 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. Exécutez la méthode principale de Provider pour démarrer le service.

Vérifier le fournisseur

Connectez-vous à la console Nacos à l'adresse http://127.0.0.1:8848. Dans le volet de navigation de gauche, cliquez sur Service List.

Le service com.alibaba.edas.IHelloService apparaît dans la liste, accompagné de son Service Group et de son Provider IP.

Étape 2 : Créer un consommateur

Créez un projet Maven distinct pour le consommateur, abonnez-vous au service du fournisseur et vérifiez que l'appel fonctionne localement.

2.1 Créer un projet Maven et ajouter des dépendances

Suivez les mêmes étapes que celles décrites dans la section Étape 1.1 pour créer un projet Maven et ajouter les trois mêmes dépendances au fichier pom.xml.

2.2 Définir l'interface de service

  1. Dans src/main/java, créez le package com.alibaba.edas.

  2. Dans com.alibaba.edas, créez la même interface IHelloService :

    package com.alibaba.edas;
    
    public interface IHelloService {
        String sayHello(String str);
    }
En production, définissez l'interface dans un module partagé et référencez-la depuis le fournisseur et le consommateur via des dépendances Maven. La duplication de l'interface ici sert uniquement à des fins de démonstration.

2.3 Configurer le service Dubbo

  1. Dans src/main/resources, créez le fichier consumer.xml.

  2. Ajoutez les espaces de noms XML Spring et Dubbo (identiques à ceux du fichier 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. Abonnez-vous au service du fournisseur :

    <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 Démarrer le consommateur

  1. Dans com.alibaba.edas, créez la 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. Exécutez la méthode principale de Consumer pour démarrer le service.

Vérifier le consommateur

Après le démarrage, la console affiche en continu :

hello world

Cette sortie confirme que le consommateur appelle correctement le fournisseur.

Connectez-vous à la console Nacos à l'adresse http://127.0.0.1:8848 et cliquez sur Services dans le volet de navigation de gauche. Sélectionnez Callers.

Le service com.alibaba.edas.IHelloService apparaît dans la liste, accompagné de son Service Group et de son Subscriber IP.

Étape 3 : Déployer sur SAE

Empaquetez le fournisseur et le consommateur sous forme de fichiers JAR exécutables, puis déployez-les sur SAE.

3.1 Ajouter le plugin de build

Ajoutez la configuration <build> suivante au fichier pom.xml de chaque projet :

  • Provider — définissez mainClass sur 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 — définissez mainClass sur 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 Générer les packages JAR

Dans le répertoire de chaque projet, exécutez :

mvn clean package

Cela produit un fichier JAR exécutable dans le répertoire target/.

3.3 Déployer sur SAE

Déployez les deux packages JAR sur SAE. Pour les étapes de déploiement, consultez la rubrique Déployer une application Java.

Après le déploiement, SAE remplace automatiquement l'adresse du registre Nacos local ( nacos://127.0.0.1:8848 ) par l'adresse du registre de services géré par SAE. Aucune modification de vos fichiers de configuration n'est nécessaire.

Étapes suivantes