Cette rubrique explique comment migrer en toute fluidité vos applications Dubbo hébergées sur Alibaba Cloud vers Enterprise Distributed Application Service (EDAS) et y enregistrer et découvrir les services. Si vos applications Dubbo ne sont pas déployées sur Alibaba Cloud, soumettez un ticket ou contactez le support technique d’EDAS pour obtenir une solution complète de migration vers EDAS.
Avantages de la migration vers EDAS
EDAS propose des fonctionnalités de déploiement d’applications, telles que la configuration flexible des paramètres de démarrage, la visualisation des processus, la connexion et la déconnexion gracieuses des services ainsi que les déploiements par phases. Cela vous permet de configurer, d’interroger et de contrôler les processus de déploiement des applications.
La version commerciale d’EDAS intègre la découverte de services et la gestion de la configuration. Vous n’avez plus à maintenir des middlewares tels qu’Eureka, ZooKeeper ou Consul.
La console EDAS prend en charge la gouvernance centralisée des services. Vous pouvez ainsi consulter les détails des services publiés et consommés.
EDAS offre la mise à l’échelle automatique. Vos applications peuvent être ajustées dynamiquement à la hausse ou à la baisse en fonction des pics et des creux de trafic.
Outre la consultation des informations relatives aux instances, EDAS fournit des fonctionnalités de supervision avancées, telles que l’interrogation des traces de microservices, l’affichage de la topologie des appels système et la recherche de requêtes SQL lentes.
EDAS met à disposition des mécanismes de limitation du débit (throttling) et de dégradation pour garantir la haute disponibilité de vos applications.
Lorsque vous itérez et mettez à jour vos applications, EDAS propose un déploiement progressif de bout en bout afin d’effectuer des validations à petite échelle.
Migration fluide
Si vos applications Dubbo sont déployées en environnement de production et fonctionnent comme prévu, vous pouvez effectuer une migration fluide vers EDAS afin de bénéficier de l’ensemble des fonctionnalités d’EDAS. Cette approche garantit la continuité des services.
Si vos applications Dubbo ne sont pas déployées en environnement de production ou si une interruption de service est acceptable pendant la migration, vous pouvez directement déployer l’application sur EDAS après son développement dans votre environnement local. Pour plus d’informations, consultez Prise en main d’EDAS.
Vue d’ensemble de la migration
La migration se déroule en trois phases :
Le schéma suivant illustre une architecture d’application type. Le processus de migration comporte trois étapes.

Migration des applications (obligatoire) — Les applications sans état sont migrées en premier, une par une.
Migration de l’instance Server Load Balancer (SLB) ou mise à jour du DNS (facultatif) — Redirigez le trafic vers le nouveau déploiement.
Migration du stockage et des files d’attente de messages (facultatif) — Nécessaire uniquement si vos applications n’utilisent pas déjà des services Alibaba Cloud tels qu’ApsaraDB RDS et Message Queue.
Ce guide se concentre sur la première phase.
Méthodes de migration
Vous pouvez migrer vos applications par basculement du registre ou par double inscription et double souscription. Ces deux méthodes permettent de migrer les applications sans interruption de service.
-
Basculement du registre
Utilisez Dubbo pour basculer du registre de services initial vers EDAS Config Server, développez un nouvel ensemble d’applications, puis déployez-les sur EDAS. Ensuite, utilisez Server Load Balancer (SLB) et configurez les noms de domaine pour rediriger le trafic.
Si vous optez pour la méthode de basculement du registre, vous pouvez ignorer le reste de cette rubrique. Vous pouvez utiliser Spring Boot pour développer des applications de microservices Dubbo. Pour plus d’informations, consultez Utiliser Spring Boot pour développer une application de microservices Dubbo.
-
Double inscription et double souscription
Connectez-vous simultanément au registre de services initial et au registre de services EDAS pendant la migration afin de permettre les appels mutuels entre les applications migrées et celles qui ne le sont pas encore.
Le schéma ci-dessous présente l’architecture permettant une migration fluide des applications via la double inscription et la double souscription :

Les applications migrées et non migrées peuvent se découvrir et s’appeler mutuellement. Cela garantit la continuité des services.
Il suffit d’ajouter des dépendances et de modifier une ligne de code pour mettre en œuvre la double inscription et la double souscription.
Vous pouvez consulter les détails des appels des services consommateurs et suivre la progression de la migration en temps réel.
Vous pouvez modifier dynamiquement les politiques d’inscription et de souscription aux services sans avoir à redémarrer les applications à plusieurs reprises. Un seul redémarrage est nécessaire tout au long du processus de migration.
Migration de la première application
-
Sélectionnez la première application à migrer.
Nous vous recommandons de commencer la migration par le fournisseur de niveau inférieur. Si la trace est complexe et difficile à analyser, vous pouvez sélectionner une application au hasard. Migrez l’application choisie en suivant les étapes suivantes.
-
Ajoutez des dépendances à l’application et modifiez sa configuration. La modification de la configuration est obligatoire si vous utilisez la méthode de double inscription et double souscription.
Ajoutez les dépendances nécessaires et adaptez la configuration de l’application avant sa migration vers EDAS.
-
Ajoutez la dépendance
edas-dubbo-migration-bomau fichierpom.xml.<dependency> <groupId>com.alibaba.edas</groupId> <artifactId>edas-dubbo-migration-bom</artifactId> <version>2.6.5.1</version> <type>pom</type> </dependency> -
Ajoutez l’adresse du registre au fichier
application.properties.dubbo.registry.address = edas-migration://30.5.124.15:9999?service-registry=edas://127.0.0.1:8080,zookeeper://172.31.20.219:2181&reference-registry=zookeeper://172.31.20.219:2181&config-address=127.0.0.1:8848RemarqueSi l’application n’est pas une application Spring Boot, effectuez la configuration dans dubbo.properties ou dans le profil Spring.
-
edas-migration://30.5.124.15:9999Préfixe de l’adresse du registre. Aucun changement n’est requis si l’application est inscrite auprès de plusieurs registres de services. Si le niveau de journalisation est WARN ou inférieur, un avertissement peut être émis au démarrage, car Dubbo vérifie l’adresse IP et le port. Vous pouvez ignorer ce message.
-
service-registryAdresse du registre de services auprès duquel l’application s’inscrit. Par défaut, l’application s’inscrit auprès de plusieurs registres ; plusieurs adresses sont donc indiquées. Chaque adresse respecte le format standard d’une adresse de registre Dubbo. Séparez les différentes adresses par des virgules (
,). Saisissez l’adresse et le port réels de ZooKeeper pour l’instance identifiée par l’adresse ZooKeeper 172.31.20.219. ` -
reference-registryAdresse du registre utilisée pour la souscription aux services. Vous pouvez inscrire l’application auprès de plusieurs registres de services ou uniquement auprès du registre initial. Chaque adresse respecte le format standard d’une adresse de registre Dubbo. Séparez les différentes adresses par des virgules (
,). -
config-addressAdresse de diffusion dynamique. Pour mettre en œuvre la diffusion dynamique dans votre environnement local, téléchargez Nacos. EDAS convertit cette adresse.
-
-
Effectuez les autres modifications requises.
Si l’application Spring n’est pas développée avec Spring Boot, ajoutez
com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRestau chemin d’analyse (scan path).
-
-
Vérifiez le résultat dans votre environnement local.
Utilisez la configuration dynamique pour appliquer une modification ponctuelle.
-
Préparez l’environnement.
-
Vérifiez si le service est bien inscrit.
Connectez-vous au centre de configuration léger pour afficher le service dans la liste des fournisseurs de services.
Connectez-vous à ZooKeeper pour consulter les informations relatives à l’inscription et à la consommation des services.
-
(Facultatif) Connectez-vous à Nacos pour configurer les informations d’inscription des services.
RemarqueIgnorez cette étape si la configuration dynamique n’est pas requise.
DataId : définissez ce paramètre sur
dubbo.registry.config.Group : indiquez le nom de l’application Dubbo spécifié dans applicationName, par exemple dubbo-migration-demo-server. Le nom de l’application doit être unique, car la configuration d’inscription des services s’applique au niveau de l’application.
-
Configuration Content : le contenu de la configuration peut être défini au niveau de l’application ou au niveau de l’adresse IP de l’instance. En cas d’utilisation de plusieurs cartes réseau (NIC), une erreur peut survenir au niveau de l’adresse IP de l’instance.
-
Niveau application
dubbo.reference.registry=edas://127.0.0.1:8080 ## The service registry with which the service is registered dubbo.service.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 ## The service registry for service subscription -
Niveau adresse IP de l’instance
169.254.15.86.dubbo.reference.registry=edas://127.0.0.1:8080,zookeeper:127.0.0.1:2181 169.254.15.86.dubbo.service.registry=edas://127.0.0.1:8080
Lors de la validation d’un cluster, vous pouvez vérifier si les configurations au niveau de l’adresse IP de l’instance et celles au niveau de l’application s’appliquent successivement.
-
-
Vérifiez que les appels entre applications fonctionnent correctement et examinez les relations d’inscription et de souscription du registre.
Spring Boot 1.x : http://ip:port/dubboRegistry
Spring Boot 2.x : http://ip:port/actuator/dubboRegistry

-
-
Déployez l’application modifiée sur EDAS.
Selon vos besoins métier, vous pouvez déployer l’application sur un cluster Elastic Compute Service (ECS) ou sur un cluster Container Service for Kubernetes (ACK). Utilisez la console EDAS ou l’outil associé pour effectuer le déploiement. Pour plus d’informations, consultez Vue d’ensemble de l’hébergement d’applications (K8s) et Vue d’ensemble de l’hébergement d’applications (ECS).
-
Nous vous recommandons de réutiliser une instance ECS existante en l’important dans EDAS afin de réduire les coûts. Pour plus d’informations, consultez Créer un cluster ECS dans la console EDAS.
ImportantSi une conversion vous est demandée lors de l’importation de l’instance ECS, sauvegardez les données importantes avant de poursuivre.
Si vous ne réutilisez pas une instance ECS existante, vous devez créer des ressources telles qu’une instance ECS et un cluster dans le réseau privé virtuel (VPC) existant. Cela permet d’établir la connectivité réseau entre les applications avant et après la migration, facilitant ainsi le processus. Pour plus d’informations, consultez Vue d’ensemble.
Configurez une liste blanche d’adresses IP pour la nouvelle instance ECS dans les produits tels que les bases de données, les caches et les files d’attente de messages. Cela garantit que l’instance ECS puisse accéder correctement à ces composants tiers.
-
-
Vérifiez le résultat.
Assurez-vous que votre service fonctionne comme prévu.
-
Consultez les données de supervision relatives à la souscription aux services.
Si Spring Boot Actuator est activé pour l’application, vous pouvez accéder à Actuator pour afficher les informations relatives à RibbonServerList pour chaque service souscrit par l’application. Accédez à Actuator via les URL suivantes :
Spring Boot 1.x : http://ip:port/dubboRegistry
Spring Boot 2.x : http://ip:port/actuator/dubboRegistry

dubbo.orig.**: informations du registre de services configurées dans l’application.dubbo.effective.**: informations du registre de services effectivement appliquées dans l’application.
Migration des autres applications
Migrez les autres applications vers EDAS en répétant la procédure utilisée pour la première application.
Suppression des configurations de migration
Une fois la migration terminée, supprimez les configurations du registre de services initial ainsi que la dépendance edas-dubbo-migration-bom utilisée pendant la migration.
Modifiez l’adresse du registre en supprimant les configurations ZooKeeper. Cela garantit que les consommateurs ne s’abonnent qu’auprès d’EDAS et que les fournisseurs ne publient leurs services que sur EDAS. Vous pouvez modifier l’adresse du registre selon les méthodes suivantes :
-
Méthode 1 : configuration dynamique
Pour plus d’informations, consultez Vérifiez le résultat dans votre environnement local.
-
Méthode 2 : modification manuelle
Une fois toutes les applications modifiées, remplacez l’adresse du registre par celle d’EDAS ConfigServer.
dubbo.registry.address = edas-migration://30.5.XXX.XXX:9999?service-registry=edas://127.0.0.1:8080,zookeeper://172.31.20.219:2181&reference-registry=edas://127.0.0.1:8080&config-address=127.0.0.1:8848Remplacez la valeur de
reference-registrypassant dezookeeper://172.31.20.219:2181àedas://127.0.0.1:8080. Déployez ensuite les applications.RemarqueSi
ZooKeepern’est plus nécessaire, supprimezzookeeper://172.31.20.219:2181des configurations du registre de services après la migration.dubbo.registry.address = edas://127.0.0.1:8080
À long terme, ZooKeeper n’affecte pas la stabilité des services, mais il augmente la complexité et le taux d’erreur liés à l’utilisation des registres de services dans Dubbo. Nous vous recommandons de supprimer les configurations ZooKeeper après la migration et de redémarrer les applications par lots pendant les heures creuses.