Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Oct 09, 2026

L'enregistrement et la découverte de services des applications Spring Cloud étaient auparavant implémentés à l'aide de composants tels qu'Eureka, Consul et ZooKeeper. Cette rubrique explique comment mettre en œuvre l'enregistrement et la découverte de services avec Nacos, ainsi que l'hébergement de Nacos sur Serverless App Engine (SAE).

Avantages

L'enregistrement et la découverte de services des applications Spring Cloud sont traditionnellement assurés par des composants tels qu'Eureka, Consul, ZooKeeper et Redis. Lorsque vous hébergez des applications Spring Cloud sur SAE, il vous suffit de remplacer le registre de services et le centre de configuration d'origine par Alibaba Nacos Discovery pour effectuer l'enregistrement et la découverte de services, sans modifier le code métier.

Le registre de services de SAE offre toutes les fonctionnalités de Spring Cloud Alibaba Nacos Discovery et vous libère de la dépendance envers plusieurs composants comme Eureka, Consul, ZooKeeper et Redis.

Après avoir hébergé vos applications Spring Cloud sur SAE, vous pouvez vous concentrer sur la logique métier de vos applications, sans vous soucier de la mise en place ni de la maintenance du registre de services et du centre de configuration. Les fonctionnalités proposées par SAE, telles que la mise à l'échelle automatique, le démarrage et l'arrêt rapides des applications par lots, ainsi que la surveillance des applications, contribuent à réduire considérablement vos coûts de développement et d'exploitation.

Si vous disposez d'un grand nombre d'applications microservices, vous pouvez utiliser l'un des types de registres de services suivants, classés par ordre de recommandation décroissant :

  • Registre de services commercial (MSE)

    ZF182Dl2pw

    Pour savoir comment construire et déployer un registre MSE Nacos, consultez la rubrique Utilisation d'un registre de services MSE Nacos.

  • Registre de services autogéré

    7D79jXUfBL

    Lors de la construction et du déploiement d'un registre Nacos autogéré, tenez compte des points suivants :

    • Assurez-vous que le réseau de SAE et celui du registre Nacos autogéré sont interconnectés.

    • Afin d'éviter toute invalidité de la commande, veillez à ne pas utiliser simultanément les paramètres -D et -XX. Exemple de code :

      • Code d'origine :

        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
      • Code modifié :

        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
    • Si vous utilisez un registre de services autogéré, nous vous recommandons de déployer l'application à l'aide d'une image ou d'un package JAR, et de configurer les paramètres de démarrage suivants : -Dnacos.use.endpoint.parsing.rule=false et -Dnacos.use.cloud.namespace.parsing=false.

      Important

      Pour utiliser un registre autre que celui intégré à SAE, vous devez ajouter les paramètres de démarrage requis avant -jar.

      • Si vous déployez l'application via une image, ajoutez -Dnacos.use.endpoint.parsing.rule=false et -Dnacos.use.cloud.namespace.parsing=false à la commande de démarrage du fichier image. Pour savoir comment créer une image Docker, consultez l'Exemple de création d'image.

        Voici un exemple de code :

        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
      • Si vous déployez l'application via un package JAR, accédez à la section Startup Command Settings de la console SAE. Ensuite, saisissez -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false dans le champ options Settings. La figure suivante illustre la commande de démarrage configurée pour déployer une application Java dans l'environnement d'exécution Open JDK 8. Pour plus d'informations, consultez la rubrique Configuration d'une commande de démarrage.sc_configure_a_startup_command_for_nacos

  • Registre de services intégré à SAE

    x6JeUmPTQf

    SAE fournit des capacités d'adressage automatique de Nacos Server pour les applications microservices Java. Vous pouvez utiliser la fonctionnalité service registration and discovery de SAE pour configurer un registre de services. Pour plus d'informations, consultez la rubrique Utilisation du registre Nacos intégré à SAE.

Étape 1 : Obtenir une démo

eureka-service-provider et eureka-service-consumer sont des packages d'applications de démonstration pour les microservices SAE. Eureka est intégré au consommateur et au fournisseur. Le consommateur utilise les services fournis par le fournisseur.

Étape 2 : Modifier les configurations du registre de services du fournisseur

Pour héberger le fournisseur cloud-native sur SAE, vous devez modifier la dépendance POM dans le fournisseur et spécifier une adresse IP pour Nacos Server.

Remarque

Vous devez spécifier une adresse IP pour Nacos Server dans les scénarios suivants :

  • Vous hébergez vos applications sur SAE après avoir réussi les tests locaux.

  • Le registre de services SAE est un registre Nacos autogéré.

  1. Ajoutez la dépendance suivante au fichier pom.xml.

    Ouvrez le fichier pom.xml du fournisseur. Remplacez spring-cloud-starter-netflix-eureka-client par spring-cloud-starter-alibaba-nacos-discovery et configurez la version de Nacos Server.

    Avant le remplacement :

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

    Après le remplacement :

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Remarque
    • Cet exemple utilise Spring Cloud Greenwich. La version de spring-cloud-starter-alibaba-nacos-discovery est 2.1.1.RELEASE.

    • Si vous utilisez Spring Cloud Finchley, la version de spring-cloud-starter-alibaba-nacos-discovery est 2.0.1.RELEASE.

    • Si vous utilisez Spring Cloud Edgware, la version de spring-cloud-starter-alibaba-nacos-discovery est 1.5.1.RELEASE. Le support de cette version a pris fin. Nous ne recommandons pas cette version. Pour plus d'informations, consultez les notes de version de Spring Cloud Edgware.

  2. Spécifiez une adresse IP pour Nacos Server.

    Ouvrez le fichier application.properties situé dans src\main\resources et spécifiez une adresse IP pour Nacos Server.

    Avant la modification :

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

    Après la modification :

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

    127.0.0.1 correspond à l'adresse IP de Nacos Server. Si Nacos Server est déployé sur un autre serveur physique, modifiez l'adresse IP en conséquence. Si vous avez d'autres exigences, ajoutez les configurations requises dans le fichier application.properties en vous référant aux Éléments de configuration.

  3. Interrogez le service de l'application.

    1. Exécutez la fonction main de ProviderApplication dans le projet nacos-service-provider pour démarrer le fournisseur.

    2. Connectez-vous à la console Nacos Server installée sur votre ordinateur en accédant à 127.0.0.1:8848/nacos. Dans le volet de navigation de gauche, choisissez Service management > Service list.

      Remarque

      Le nom d'utilisateur et le mot de passe par défaut pour se connecter à la console Nacos Server sont nacos.

      Si service-provider s'affiche dans Service list et que vous pouvez consulter les détails de service-provider, cela signifie que service-provider est correctement enregistré.

Étape 3 : Modifier les configurations du registre de services du consommateur

Pour héberger le consommateur cloud-native sur SAE, vous devez modifier la dépendance POM dans le consommateur et spécifier une adresse IP pour le serveur Nacos.

Remarque

Vous devez spécifier une adresse IP pour le serveur Nacos dans les scénarios suivants :

  • Vous hébergez vos applications sur SAE après qu'elles ont passé les tests locaux avec succès.

  • Le registre de services SAE est un registre Nacos autogéré.

  1. Ajoutez la dépendance suivante au fichier pom.xml.

    Ouvrez le fichier pom.xml du fournisseur. Remplacez spring-cloud-starter-netflix-eureka-client par spring-cloud-starter-alibaba-nacos-discovery et configurez la version du serveur Nacos.

    Avant le remplacement :

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

    Après le remplacement :

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Remarque
    • Cet exemple utilise Spring Cloud Greenwich. La version de spring-cloud-starter-alibaba-nacos-discovery est 2.1.1.RELEASE.

    • Si vous utilisez Spring Cloud Finchley, la version de spring-cloud-starter-alibaba-nacos-discovery est 2.0.1.RELEASE.

    • Si vous utilisez Spring Cloud Edgware, la version de spring-cloud-starter-alibaba-nacos-discovery est 1.5.1.RELEASE. Le support de cette version a pris fin. Nous ne recommandons pas cette version. Pour plus d'informations, consultez les notes de version de Spring Cloud Edgware.

  2. Spécifiez une adresse IP pour le serveur Nacos.

    Ouvrez le fichier application.properties situé dans src\main\resources et spécifiez une adresse IP pour le serveur Nacos.

    Avant la modification :

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

    Après la modification :

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

    127.0.0.1 correspond à l'adresse IP du serveur Nacos. Si le serveur Nacos est déployé sur un autre serveur physique, modifiez l'adresse IP en conséquence. Si vous avez d'autres exigences, ajoutez les configurations requises dans le fichier application.properties en vous référant aux Éléments de configuration.

  3. Interrogez le service de l'application.

    1. Exécutez la fonction main de ConsumerApplication dans le projet nacos-service-consumer pour démarrer le consommateur.

    2. Connectez-vous à la console du serveur Nacos installée sur votre ordinateur en accédant à 127.0.0.1:8848/nacos. Dans le volet de navigation de gauche, choisissez Service management > Service list.

      Remarque

      Le nom d'utilisateur et le mot de passe par défaut pour se connecter à la console du serveur Nacos sont nacos.

      Si service-consumer s'affiche dans Service list et que vous pouvez consulter les détails de service-consumer, alors l'enregistrement de service-consumer a réussi.

Étape 4 : Consulter les résultats de la consommation des services du fournisseur par le consommateur

Consultez les résultats de la consommation des services fournis par le fournisseur sur votre ordinateur. Démarrez le service et exécutez IP+port/echo-rest/<Custom variable> ou IP+port/echo-feign/<Custom variable> pour afficher les résultats.

  • Sous Linux, UNIX ou macOS, exécutez curl http://127.0.0.1:18082/echo-rest/<Custom variable> ou curl http://127.0.0.1:18082/echo-feign/<Custom variable>.

  • Sous Windows, saisissez http://127.0.0.1:18082/echo-rest/<Custom variable> ou http://127.0.0.1:18082/echo-feign/<Custom variable> dans le navigateur.

Voici un exemple de consommation de service réussie sur un système d'exploitation Windows.

Étape 5 : Déployer les applications sur SAE

Cette rubrique présente un exemple illustrant la compilation du programme local en un package JAR exécutable. Vous pouvez également créer une image pour l'application avant le déploiement.

  1. Dans le fichier pom.xml de l'application, ajoutez la configuration suivante, puis exécutez la commande mvn clean package pour compiler le programme local en un package JAR exécutable.

    <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. Déployez les packages d'application du fournisseur et du consommateur compilés sur SAE. Pour plus d'informations, consultez la rubrique Déployer des applications Java à l'aide d'un package JAR.

    Important
    • SAE ne permet pas de créer une application vide. Vous devez créer une application dans la console, puis vous pourrez pousser des données vers celle-ci.

    • Si vous utilisez un package JAR pour déployer les applications, définissez Application Runtime Environment sur Standard Java Application Runtime Environment.

    • Si vous utilisez un package WAR pour déployer les applications, définissez Application Runtime Environment sur apache-tomcat-XXX.

    Lors du déploiement des applications sur SAE, le registre de services de SAE définit automatiquement, avec une priorité élevée, l'adresse IP du serveur Nacos, le port de service, le namespace, l'ID AccessKey et le secret AccessKey. Vous pouvez conserver ou supprimer les configurations par défaut selon vos besoins.

Étape 6 : Vérifier le résultat

  1. Associez une instance CLB orientée Internet au consommateur et saisissez le point de terminaison public spécifié pour l'instance CLB dans le navigateur pour accéder à la page d'accueil du consommateur. Pour plus d'informations, consultez la rubrique Associer une instance CLB à une application et générer une adresse IP publique ou privée pour l'application.

  2. Sur la page d'accueil du consommateur, créez une requête pour appeler les services du fournisseur. Connectez-vous à la console SAE. Dans le volet de navigation de gauche, choisissez Applications > Applications. Dans la barre de navigation supérieure, sélectionnez une région.

  3. Sur la page Applications, sélectionnez un consommateur et accédez à la page Basic Information.

  4. Dans le volet de navigation de gauche, choisissez Application Monitoring > Application Overview pour consulter les données globales d'appel de service.

    Si les données relatives à la requête d'appel des services du fournisseur s'affichent sur la page Overview, les services ont été appelés avec succès.

Éléments de configuration

Élément de configuration

Clé

Valeur par défaut

Description

Adresse IP du serveur

spring.cloud.nacos.discovery.server-addr

Aucune

L'adresse IP et le port sur lesquels le serveur Nacos écoute.

Nom du service

spring.cloud.nacos.discovery.service

${spring.application.name}

Le nom du service.

Nom de l'interface réseau (NIC)

spring.cloud.nacos.discovery.network-interface

Aucune

Si aucune adresse IP n'est spécifiée, l'adresse IP de l'interface réseau est enregistrée. Si cet élément n'est pas configuré, l'adresse IP de la première interface réseau est utilisée par défaut.

Adresse IP enregistrée

spring.cloud.nacos.discovery.ip

Aucune

L'adresse IP enregistrée a une priorité plus élevée que le nom ENI lors de la configuration.

Port enregistré

spring.cloud.nacos.discovery.port

-1

Vous n'avez pas besoin de configurer le port enregistré. Le système détecte automatiquement le port.

Namespace

spring.cloud.nacos.discovery.namespace

Aucune

L'isolation de l'enregistrement dans différents environnements. Par exemple, l'isolation des ressources, y compris les configurations et les services, dans les environnements de développement, de test et de production.

Métadonnées

spring.cloud.nacos.discovery.metadata

Aucune

Ces métadonnées doivent être configurées au format JSON Map. Vous pouvez spécifier les métadonnées liées au service en fonction de vos besoins métier.

Cluster

spring.cloud.nacos.discovery.cluster-name

DEFAULT

Le nom du cluster Nacos.

Endpoint

spring.cloud.nacos.discovery.endpoint

Aucune

Le nom de domaine d'un service dans la région. Vous pouvez récupérer dynamiquement l'adresse IP du serveur à partir de ce nom de domaine. Vous n'avez pas besoin de spécifier cet élément lors du déploiement d'une application sur SAE.

Activation de l'intégration Ribbon

ribbon.nacos.enabled

true

Désactivez l'intégration Ribbon uniquement si nécessaire.

Pour plus d'informations sur Spring Cloud Alibaba Nacos Discovery, consultez la page Spring Cloud Alibaba Nacos Discovery.

Étapes suivantes

Vous pouvez effectuer les opérations suivantes sur l'application créée.