Si votre application Dubbo est déjà déployée sur Alibaba Cloud, vous pouvez la migrer vers Serverless App Engine (SAE). Cette rubrique explique comment migrer votre application vers SAE en toute transparence.
Étape 1 : Migrer la première application
Cette rubrique illustre le processus de migration à l'aide d'une application de démonstration. Pour télécharger cette application, consultez Démo.
-
Priorisez les applications à migrer.
Nous vous recommandons de commencer par le fournisseur situé au niveau le plus bas dans la chaîne d'appels. Si la chaîne d'appels est trop complexe à analyser, commencez par n'importe quelle application.
-
Ajoutez une dépendance et modifiez les configurations de l'application.
RemarqueCette migration utilise la stratégie de double enregistrement et de double souscription.
-
Ajoutez la dépendance
edas-dubbo-migration-bomau fichier pom.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 IP du registre de services SAE au fichier application.properties.
dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=zookeeper://192.168.XX.XX:2181&config-address=127.0.XX.XX:8848ImportantPour les applications non Spring Boot, configurez ce paramètre dans le fichier dubbo.properties ou dans le fichier de configuration Spring correspondant.
Paramètre
Description
edas-migration://192.168.XX.XX:9999
Vous n'avez pas besoin de modifier l'en-tête pour plusieurs registres de services. Au démarrage, Dubbo valide l'adresse IP et le port. Si votre niveau de journalisation est défini sur WARN ou inférieur, un message de journal WARN peut apparaître ; ignorez-le.
service-registry
Adresse du registre de services pour l'enregistrement des services. Vous pouvez spécifier plusieurs adresses de registre de services, séparées par une virgule (
,). Chaque adresse doit respecter le format standard du registre Dubbo. Dans l'exemple,192.168.XX.XXcorrespond à l'adresse ZooKeeper. Remplacez-la par l'adresse IP et le port de votre instance ZooKeeper réelle.reference-registry
Adresse du registre de services pour la souscription aux services. Ce paramètre prend en charge plusieurs registres ou la souscription au registre de services d'origine utilisé avant la migration.
config-address
Adresse utilisée pour la diffusion des configurations dynamiques.
-
Autres modifications.
Pour les applications Spring qui n'utilisent pas Spring Boot, ajoutez
com.alibaba.edas.dubbo.migration.controller.EdasDubboRegistryRestà votre chemin de scan.
-
-
Vérification locale.
Cette section fournit un exemple utilisant la configuration dynamique.
-
Avant de démarrer la vérification, effectuez les étapes suivantes :
-
Vérifiez que le service est enregistré.
Connectez-vous au centre de configuration et d'enregistrement léger et recherchez le service dans la liste des fournisseurs (Provider List).
Connectez-vous à ZooKeeper et consultez les informations d'enregistrement et de consommation des services.
-
Facultatif : Connectez-vous à Nacos et configurez les informations d'enregistrement des services.
RemarqueSi vous n'avez pas besoin de configuration dynamique, ignorez cette étape.
Paramètre
Description
DataId
Définissez ce paramètre sur dubbo.registry.config.
Groupe
Définissez ce paramètre sur le nom de l'application Dubbo, spécifié par applicationName, tel que dubbo-migration-demo-server. La configuration étant au niveau de l'application, le nom de l'application doit être unique.
Contenu de la configuration
-
Niveau application
dubbo.reference.registry=edas://127.0.XX.XX:8080 # The address of the service registry for service subscription. dubbo.service.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181 # The address of the service registry for service registration. -
Niveau adresse IP de l'instance
192.168.XX.XX.dubbo.reference.registry=edas://127.0.XX.XX:8080,zookeeper:127.0.XX.XX:2181 192.168.XX.XX.dubbo.service.registry=edas://127.0.XX.XX:8080
Lors de la vérification d'un cluster, nous vous recommandons de vérifier d'abord au niveau de l'adresse IP de l'instance, puis au niveau de l'application.
-
-
Vérifiez que les appels d'application fonctionnent correctement après la migration et contrôlez l'état d'enregistrement et de souscription dans le registre de services.
Spring Boot 1.x : http://ip:port/dubboRegistry
Spring Boot 2.x : http://ip:port/actuator/dubboRegistry
Voici un exemple des informations de configuration du registre de services renvoyées lorsque vous accédez à l'un des endpoints précédents :
{ "dubbo.effective.reference.registry": [ "edas://127.0.xxx:8080" ], "dubbo.orig.reference.registry": [ "zookeeper://127.0.xxx:2181" ], "dubbo.orig.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ], "dubbo.effective.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ] }
-
-
Déployez l'application sur SAE.
Déployez l'application sur SAE selon vos besoins. Pour plus d'informations, consultez Déploiement d'applications.
-
Vérifiez les résultats.
Vérifiez que vos services métier fonctionnent correctement.
-
Consultez la surveillance de la souscription aux services.
Si la surveillance Spring Boot Actuator est activée pour votre application, accédez aux endpoints Actuator pour afficher les informations RibbonServerList des services souscrits :
Spring Boot 1.x : http://ip:port/dubboRegistry
Spring Boot 2.x : http://ip:port/actuator/dubboRegistry
{ "dubbo.effective.reference.registry": [ "edas://127.0.xxx:8080" ], "dubbo.orig.reference.registry": [ "zookeeper://127.0.xxx:2181" ], "dubbo.orig.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ], "dubbo.effective.service.registry": [ "edas://127.0.xxx:8080", "zookeeper://127.0.xxx:2181" ] }Descriptions des paramètres :
dubbo.orig.**: Informations sur le registre de services configurées dans l'application.dubbo.effective.**: Informations effectives sur le registre de services.
Étape 2 : Migrer toutes les applications restantes
Migrez séquentiellement toutes les autres applications vers SAE. Pour plus d'informations, consultez Étape 1 : Migrer la première application.
Étape 3 : Nettoyer la configuration de migration
Une fois la migration terminée, supprimez la configuration du registre de services d'origine ainsi que la dépendance dédiée à la migration edas-dubbo-migration-bom.
Mettez à jour les adresses du registre de services afin que les consommateurs et les fournisseurs ne s'abonnent qu'à SAE. Cela implique la suppression de la configuration ZooKeeper. Procédez de l'une des manières suivantes :
Méthode 1 : Utilisez la configuration dynamique. Pour plus d'informations, consultez la section vérification locale.
-
Méthode 2 : Modifiez la configuration manuellement.
Après avoir mis à jour toutes les applications, modifiez l'adresse du registre de services et définissez l'adresse de souscription sur SAE Config Server.
dubbo.registry.address = edas-migration://192.168.XX.XX:9999?service-registry=edas://127.0.XX.XX:8080,zookeeper://192.168.XX.XX:2181&reference-registry=edas://127.0.XX.XX:8080&config-address=127.0.XX.XX:8848Remplacez la valeur de
reference-registrydezookeeper://192.168.XX.XX:2181paredas://127.0.XX.XX:8080, puis déployez l'application.RemarqueUne fois la migration terminée, si vous n'utilisez plus
ZooKeeper, retirezzookeeper://192.168.XX.XX:2181de la configuration du registre de services.Bien que l'utilisation continue de l'ancien ZooKeeper n'affecte pas la stabilité métier, elle complexifie l'interaction de Dubbo avec le registre de services et peut augmenter le taux d'erreur. Nous vous recommandons de supprimer rapidement l'ancienne configuration ZooKeeper une fois la migration achevée, et de redémarrer les applications par lots pendant les heures creuses. L'exemple d'adresse finale est le suivant :
dubbo.registry.address = edas://127.0.XX.XX:8080