Tous les produits
Search
Centre de documentation

Enterprise Distributed Application Service:Migrer un cluster Spring Cloud multi-applications vers EDAS

Dernière mise à jour :Aug 10, 2026

Ce guide explique comment migrer un cluster Spring Cloud multi-applications vers Enterprise Distributed Application Service (EDAS) sans interruption de service. La stratégie de double inscription et de double abonnement permet aux applications migrées et non migrées de communiquer tout au long du processus.

Ce guide s'applique aux clusters Spring Cloud déjà déployés sur Alibaba Cloud. Si votre cluster n'est pas encore sur Alibaba Cloud, soumettez un ticket ou contactez le support technique EDAS pour obtenir une solution de migration complète.

Remarque

Si votre cluster n'est pas en production ou si une interruption de service est acceptable, ignorez ce guide. Développez les applications localement et déployez-les directement sur EDAS. Consultez la rubrique Mettre en œuvre l'enregistrement et la découverte de services.

Pourquoi migrer vers EDAS

EDAS remplace la charge opérationnelle liée à la gestion autonome de l'infrastructure Spring Cloud par une plateforme managée. Après la migration :

  • Déploiement flexible -- Configurez les paramètres de démarrage, suivez visuellement la progression du déploiement et utilisez la connexion et la déconnexion gracieuses des services pour éviter la perte de requêtes.

  • Découverte de services intégrée -- EDAS fournit la découverte de services et la gestion de la configuration dans sa version commerciale, remplaçant ainsi les solutions gérées en interne comme Eureka, ZooKeeper ou Consul.

  • Administration centralisée des services -- Interrogez les services publiés et consommés depuis la console EDAS. Outre la consultation des informations sur les instances, accédez aux traces des microservices, à la topologie des appels système et à l'analyse des requêtes SQL lentes.

  • Auto Scaling -- Mettez à l'échelle dynamiquement les instances d'application en fonction du trafic.

  • Versions par étapes -- Exécutez des versions par étapes de bout en bout pour une validation à petite échelle avant de déployer les mises à jour sur toutes les instances.

  • Limitation de débit et dégradation -- Appliquez la limitation de débit et la dégradation des services pour maintenir la stabilité des applications sous forte charge.

Choisir une méthode de migration

EDAS prend en charge deux méthodes de migration. Toutes deux préservent la continuité des services.

Méthode Fonctionnement
Changement de registre Utilisez Spring Cloud Alibaba pour basculer le registre de services original vers Nacos. Développez les applications et déployez-les sur EDAS, puis redirigez le trafic en configurant l'instance SLB et le nom de domaine.
Double inscription et double abonnement Accédez à la fois au registre de services original et au registre de services EDAS pendant la migration, permettant l'appel mutuel entre les applications migrées et non migrées.

Si vous choisissez le changement de registre, suivez la configuration standard décrite dans la rubrique Mettre en œuvre l'enregistrement et la découverte de services. La suite de ce guide couvre la méthode de double inscription et de double abonnement.

Fonctionnement de la double inscription

Pendant la migration, chaque application s'inscrit à la fois auprès du registre de services original et du registre EDAS (Nacos). Cela signifie que :

La figure suivante illustre l'architecture permettant une migration fluide des applications grâce à la double inscription et au double abonnement.

EDAS应用迁移双注册和双订阅迁移方案

  • Les applications migrées découvrent les applications non migrées via le registre original.

  • Les applications non migrées découvrent les applications migrées de la même manière.

  • Les deux groupes peuvent s'appeler mutuellement sans interruption.

  • Consultez la liste des appels de services consommateurs et suivez la progression de la migration en temps réel.

  • Les applications ne redémarrent qu'une seule fois durant l'ensemble du processus de migration. Par la suite, vous pouvez ajuster dynamiquement les politiques d'inscription et d'abonnement sans redémarrage.

Une fois toutes les applications migrées, supprimez la configuration du registre original ainsi que la dépendance de migration.

Vue d'ensemble de la migration

La migration se déroule en trois phases :

La figure suivante présente une architecture d'application typique. Le processus de migration est divisé en trois étapes.

SpringCloud应用迁移EDAS迁移流程

  1. Migration des applications (obligatoire) -- Les applications sans état sont migrées en premier, une par une.

  2. Migration de l'instance Server Load Balancer (SLB) ou mise à jour DNS (facultatif) -- Redirigez le trafic vers le nouveau déploiement.

  3. Migration du stockage et des files d'attente de messages (facultatif) -- Nécessaire uniquement si vos applications n'utilisent pas encore des services Alibaba Cloud tels qu'ApsaraDB RDS et Message Queue.

Ce guide se concentre sur la première phase.

Phase 1 : Migrer les applications

Étape 1 : Sélectionner la première application

Commencez par un fournisseur en aval, c'est-à-dire une application appelée par d'autres services mais qui possède peu ou pas de dépendances en amont. Si votre chaîne d'appels est trop complexe pour identifier une telle application, choisissez n'importe quelle application et poursuivez.

Étape 2 : Ajouter des dépendances et mettre à jour la configuration

Appliquez les modifications suivantes à l'application avant de la déployer sur EDAS.

2a. Ajouter la dépendance de découverte Nacos

Ajoutez la dépendance spring-cloud-starter-alibaba-nacos-discovery à votre fichier pom.xml.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>{Version}</version>
</dependency>

Remplacez {Version} par la version de Spring Cloud Alibaba compatible avec votre version de Spring Boot.

2b. Configurer l'adresse du serveur Nacos

Ajoutez les propriétés suivantes au fichier application.properties :

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
ribbon.nacos.enabled=false

Le fait de définir ribbon.nacos.enabled sur false empêche Nacos de remplacer la liste des serveurs Ribbon, ce qui est nécessaire pour la configuration de double abonnement.

2c. Ajouter le starter de migration

Par défaut, Spring Cloud n'autorise qu'un seul registre de services. La dépendance edas-sc-migration-starter lève cette restriction et active la double inscription.

<dependency>
    <groupId>com.alibaba.edas</groupId>
    <artifactId>edas-sc-migration-starter</artifactId>
    <version>1.0.5</version>
</dependency>

2d. Configurer Ribbon pour l'abonnement multi-registres

Pour agréger les instances de service provenant de plusieurs registres, définissez MigrationRibbonConfiguration comme configuration Ribbon par défaut dans la classe principale de votre application.

Avant :

@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

Après :

@SpringBootApplication
@RibbonClients(defaultConfiguration = MigrationRibbonConfiguration.class)
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

Cette unique annotation constitue la seule modification de code requise.

Étape 3 : Déployer sur EDAS

Déployez l'application modifiée sur un cluster ECS ou un cluster ACK. Utilisez la console EDAS ou les outils CLI.

Points importants à considérer :

  • Réutilisez les instances ECS existantes pour réduire les coûts en les important dans EDAS. Consultez la rubrique Créer un cluster ECS dans la console EDAS.

  • Si vous créez de nouvelles instances ECS, placez-les dans le même Virtual Private Cloud (VPC) que les applications existantes afin de maintenir la connectivité réseau interne. Consultez la rubrique Vue d'ensemble de la gestion des ressources.

  • Mettez à jour les listes d'autorisation d'adresses IP dans les bases de données, les caches et les files d'attente de messages pour inclure les adresses IP des nouvelles instances ECS.

Étape 4 : Vérifier la migration

Après le déploiement, vérifiez que l'application migrée fonctionne correctement :

  1. Vérifiez l'état du service -- Assurez-vous que l'application démarre avec succès et traite les requêtes comme prévu.

  2. Inspectez la liste des serveurs Ribbon -- Si Spring Boot Actuator est activé, interrogez le endpoint de migration pour voir à quels registres l'application est abonnée :

    • Spring Boot 1.x : http://<ip>:<port>/migration_server_list

    • Spring Boot 2.x : http://<ip>:<port>/actuator/migration-server-list

    Dans la réponse, le champ serverGroup dans metaInfo identifie le registre source pour chaque instance de service (par exemple, eureka ou nacos).

    EDSA应用迁移结果验证之查看服务订阅监控

Étape 5 : Migrer les applications restantes

Répétez les étapes 2 à 4 pour chaque application restante du cluster.

Phase 2 : Migrer l'instance SLB ou mettre à jour le DNS (facultatif)

Une fois toutes les applications migrées, mettez à jour le routage réseau :

  • Si une instance SLB était utilisée avant la migration, réutilisez-la . Vous pouvez sélectionner une politique pour attacher l'instance SLB selon vos besoins. Pour plus d'informations, consultez la rubrique Vue d'ensemble de la liaison SLB.

  • Si aucune instance SLB n'était utilisée, créez-en une et liez-la à votre application point d'entrée (par exemple, API Gateway).

  • Configuration du nom de domaine :

    • Si l'instance SLB est réutilisée, aucune modification DNS n'est nécessaire.

    • Si une nouvelle instance SLB est créée, mettez à jour le DNS pour pointer vers la nouvelle instance SLB et supprimez l'ancienne. Consultez la rubrique Modifier les serveurs DNS d'un nom de domaine.

Phase 3 : Migrer le stockage et les files d'attente de messages (facultatif)

Si vos applications utilisent déjà des services Alibaba Cloud tels qu'ApsaraDB RDS et Message Queue, aucune migration du stockage ou des files d'attente de messages n'est nécessaire.

Si vos applications ne sont pas hébergées sur Alibaba Cloud, contactez le support technique EDAS pour un plan de migration complet.

Ajuster dynamiquement les politiques d'inscription et d'abonnement

Pendant la migration, vous pouvez ajuster les registres auxquels une application s'inscrit ou s'abonne, sans redémarrage. Utilisez la fonctionnalité de gestion de la configuration EDAS, Spring Cloud Config ou Nacos Config pour mettre à jour les propriétés suivantes à l'exécution.

Contrôler les registres auxquels l'application s'abonne

Par défaut, l'application s'abonne à tous les registres et agrège les résultats.

Pour vous abonner uniquement à des registres spécifiques, définissez la propriété spring.cloud.edas.migration.subscribes :

# Subscribe to both Eureka and Nacos
spring.cloud.edas.migration.subscribes=nacos,eureka

# Subscribe to Nacos only
spring.cloud.edas.migration.subscribes=nacos

Contrôler les registres auxquels l'application s'inscrit

Par défaut, l'application s'inscrit auprès de tous les registres.

Pour arrêter l'inscription auprès de registres spécifiques, définissez la propriété spring.cloud.edas.migration.registry.excludes :

# Register with all registries (default)
spring.cloud.edas.migration.registry.excludes=

# Stop registering with Eureka
spring.cloud.edas.migration.registry.excludes=eureka

# Stop registering with both Nacos and Eureka
spring.cloud.edas.migration.registry.excludes=nacos,eureka
Remarque

Conseil : Si vous utilisez Spring Cloud Config, consultez la documentation open source. Pour les instructions de configuration de Nacos Config, consultez la rubrique Gérer les configurations des applications.

Nettoyage post-migration

Une fois toutes les applications exécutées sur EDAS, supprimez la configuration spécifique à la migration :

  1. Supprimez la dépendance edas-sc-migration-starter du fichier pom.xml (ou build.gradle) de chaque application.

  2. Supprimez l'annotation @RibbonClients(defaultConfiguration = MigrationRibbonConfiguration.class) de la classe principale.

  3. Supprimez la dépendance et la configuration du registre de services original (par exemple, les paramètres du client Eureka ou Consul).

  4. Supprimez la propriété ribbon.nacos.enabled=false du fichier application.properties.

  5. Redémarrez les applications par lots pendant les heures creuses.

Remarque

Le starter edas-sc-migration-starter n'affecte pas la stabilité du service s'il reste temporairement en place. Cependant, il limite le comportement d'équilibrage de charge de Ribbon ; il convient donc de le supprimer une fois la migration terminée.

Projet de démonstration

EDAS propose un projet exemple qui illustre la double inscription et le double abonnement. Téléchargez le projet et suivez le fichier README inclus pour l'exécuter localement.

Aide en cas de problèmes de migration

Si vous rencontrez des problèmes lors de la migration de votre cluster Spring Cloud vers EDAS, rejoignez le groupe DingTalk (ID : 31723701) pour contacter un expert technique produit qui vous assistera.

Remarque

Afin de nous permettre de mieux vous servir, veuillez fournir le nom de votre entreprise et votre ID de compte Alibaba Cloud lorsque vous demandez à rejoindre le groupe DingTalk.