Par rapport à Apache RocketMQ open source, Alibaba Cloud ApsaraMQ for RocketMQ offre une stabilité et une sécurité accrues, ainsi qu'un système d'exploitation et de maintenance plus complet. Vous pouvez migrer votre cluster RocketMQ open source vers ApsaraMQ for RocketMQ pour améliorer l'expérience de vos activités métier. Cette rubrique explique comment utiliser l'outil de migration d'ApsaraMQ for RocketMQ pour migrer un cluster Apache RocketMQ auto-géré vers ApsaraMQ for RocketMQ.
Prérequis
-
Nom du rôle : AliyunServiceRoleForRMQMigration
Politique : AliyunServiceRolePolicyForRMQMigration
Description : Autorise ApsaraMQ for RocketMQ à accéder aux VPC.
Notes d'utilisation
Lors de la phase de migration des messages, avant de passer de l'étape Write in Destination Cluster and Read and Write in Source and Destination Clusters à l'étape Read and Write in Destination Cluster, assurez-vous que tous les messages du cluster source ont été consommés et qu'aucun message planifié n'est en attente. Ce n'est qu'alors que vous pourrez passer à l'étape Read and Write in Destination Cluster.
Ne désactivez pas le cluster Apache RocketMQ open source auto-géré avant la fin de la tâche de migration.
Processus de migration
La figure suivante illustre le processus de migration d'un cluster RocketMQ open source vers ApsaraMQ for RocketMQ.
-
Étape 1 : Évaluation de la migration
Évaluez les risques de migration et la compatibilité en fonction de la version et de l'utilisation des fonctionnalités de votre cluster RocketMQ open source auto-géré. Confirmez les objectifs et le périmètre de la tâche de migration.
-
Étape 2 : Configuration des informations réseau
Saisissez les informations réseau et les nœuds de votre cluster auto-géré. ApsaraMQ for RocketMQ établit la connectivité réseau avec les autorisations minimales requises pour prendre en charge les opérations de basculement du trafic et les vérifications de validation.
-
Étape 3 : Migration des métadonnées
ApsaraMQ for RocketMQ lit les métadonnées des topics et des groupes depuis votre cluster auto-géré et les réplique vers l'instance ApsaraMQ for RocketMQ de destination.
-
Étape 4 : Modification de l'endpoint
Identifiez tous les producteurs et consommateurs inclus dans le périmètre de migration. Modifiez l'endpoint dans le code de vos producteurs et consommateurs, en passant du cluster source à l'instance ApsaraMQ for RocketMQ de destination.
-
Étape 5 : Migration du trafic de messagerie
Effectuez les opérations de basculement du trafic par étapes, au niveau des topics.
-
Étape 6 : Finalisation de la tâche de migration
Finalisez la tâche de migration et désactivez le cluster RocketMQ open source auto-géré.
Étape 1 : Évaluation de la migration
Avant la migration, effectuez une évaluation technique et définissez le périmètre de migration en fonction de vos besoins métier. Cela vous permettra de réaliser la migration vers le cloud par lots.
Évaluation technique : Elle vous aide à déterminer si le client et l'environnement de votre cluster RocketMQ auto-géré répondent aux exigences de migration et clarifie la prise en charge des fonctionnalités avant et après la migration.
Confirmation du périmètre de migration : Nous recommandons d'effectuer la migration par lots, en fonction de la priorité métier et du couplage des applications. Une fois qu'un lot est stable, vous pouvez élargir le périmètre de migration et achever progressivement l'intégralité de la tâche de migration.
Évaluation technique
-
Assurez-vous que votre cluster RocketMQ auto-géré source répond aux exigences suivantes. Si ce n'est pas le cas, soumettez un ticket pour obtenir une solution.
Exigence
Description
Version de déploiement
Les versions de serveur Apache RocketMQ 5.x et 4.x sont prises en charge.
Exigences réseau
Le cluster source doit être déployé dans un environnement VPC Alibaba Cloud. S'il est déployé dans un centre de données sur site, il doit être accessible depuis une adresse privée VPC.
Régions prises en charge
La fonctionnalité Migration to Cloud est disponible uniquement dans les régions suivantes : Chine (Hangzhou), Chine (Shanghai), Chine (Pékin), Chine (Shenzhen), Chine (Zhangjiakou), Chine (Hong Kong), États-Unis (Silicon Valley), Singapour et Japon (Tokyo).
Contraintes de paramètres
Taille des messages :
Maximum : 4 Mo.
Durée de conservation des messages :
Minimum : 24 heures.
Maximum : 720 heures.
Délai maximal pour les messages planifiés :
Les instances Standard Edition en abonnement et paiement à l'utilisation, ainsi que les instances Serverless Standard et Professional Edition, prennent en charge un délai maximal de 7 jours.
Les instances Professional Edition et Platinum Edition en abonnement et paiement à l'utilisation prennent en charge un délai maximal de 40 jours.
Pour plus d'informations sur les contraintes de paramètres, consultez les quotas et limites.
-
Exigences relatives à la version du SDK : La solution de migration est conçue pour minimiser les modifications. Dans la plupart des cas, vous pouvez directement mettre à niveau la version du SDK client. Étant donné qu'un changement de version majeure inclut généralement de nouvelles fonctionnalités et des optimisations de stabilité, nous vous recommandons de mettre à niveau la version du SDK lors de la migration.
SDK
Langage
Version
Mise à niveau nécessaire ?
Apache RocketMQ Remoting SDK
Le code suivant fournit un exemple de dépendance Maven pour le SDK Java :
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>{version}</version> </dependency>L'endpoint est configuré au format suivant :
producer.setNamesrvAddr("xxx:9876"); consumer.setNamesrvAddr("xxx:9876");
Java
SDK 5.x
Compatible par défaut. Aucune mise à niveau n'est nécessaire.
Java, C++
SDK 4.x
Si votre cluster source utilise l'interface
PullConsumer,DefaultLitePullConsumerouDefaultPullConsumer, vous devez effectuer une mise à niveau vers un SDK de la série 5.x. Pour plus d'informations, consultez la présentation de la référence SDK.RemarqueSi vous utilisez le connecteur Flink pour RocketMQ afin d'envoyer et de recevoir des messages, nous vous recommandons de compiler et d'utiliser la dernière version du SDK pour la migration. Pour plus d'informations, consultez rocketmq-flink.
Périmètre de migration
ApsaraMQ for RocketMQ prend en charge la migration au niveau des topics, ce qui permet des déploiements progressifs et canaris avec des capacités de rollback. Cette approche réduit efficacement les risques liés aux modifications à grande échelle.
Avant d'effectuer la migration, vous devez confirmer le périmètre métier des topics et planifier les lots de migration.
Sélection des topics : Sélectionnez les topics au niveau du cluster auto-géré et planifiez les lots de migration en fonction de la priorité métier. Nous vous recommandons de commencer par les topics des services non critiques.
-
Coordination avec les services en amont et en aval : Après avoir sélectionné les topics, vous devez informer toutes les applications en amont et en aval (producteurs et consommateurs) qui utilisent ces topics de modifier leurs endpoints.
ImportantVous devez informer toutes les applications en amont et en aval concernées par la migration des topics. Le fait de ne pas modifier l'endpoint d'une application peut entraîner des problèmes tels que des retards dans la consommation des messages.
Étape 2 : Configuration des informations réseau
Créez une tâche de migration et configurez les informations réseau du cluster auto-géré source. L'outil de migration d'ApsaraMQ for RocketMQ utilise ces informations pour lire les métadonnées du cluster source et gérer les tâches de migration ultérieures.
Notes d'utilisation
-
Avec le principe du moindre privilège, l'outil de migration d'ApsaraMQ for RocketMQ accède uniquement aux informations suivantes du cluster auto-géré source :
Configurations des métadonnées des topics
Configurations des métadonnées des groupes
Informations d'enregistrement des routes dynamiques des topics
Informations de connexion des consommateurs et statut de l'accumulation des messages
L'outil de migration n'accède à aucune autre information du cluster source et n'effectue aucune opération d'écriture sur ses configurations. Cela garantit que l'outil de migration n'affecte pas le fonctionnement de votre cluster auto-géré source.
Après avoir configuré les informations réseau, vérifiez attentivement leur exactitude avant de continuer. Une fois que vous avez poursuivi, vous ne pouvez plus modifier les paramètres réseau. Pour apporter des modifications, vous devez créer une nouvelle tâche.
Procédure
Connectez-vous à la console ApsaraMQ for RocketMQ.
Dans la barre de navigation supérieure, sélectionnez la région où se trouvent le cluster source et l'instance ApsaraMQ for RocketMQ de destination. Dans le volet de navigation de gauche, choisissez .
Sur la page Migration to Cloud, cliquez sur Create Task.
-
Dans le panneau Create Migration Task, configurez les paramètres et cliquez sur OK.
Pour plus d'informations sur les paramètres, consultez les Paramètres réseau du cluster source.
-
Sur la page Network Settings de l'assistant Migration to Cloud, saisissez les informations réseau du cluster RocketMQ auto-géré source et cliquez sur Configure Network.
Pour plus d'informations sur les paramètres, consultez les Paramètres réseau du cluster source.
Attendez la fin de la configuration. Lorsque la page indique que la configuration est terminée, cliquez sur Next.
Paramètres
Tableau 1. Paramètres réseau du cluster source
Paramètre | Description | Exemple |
Network Type | L'environnement réseau dans lequel le cluster open source auto-géré est déployé.
| VPC-connected Cluster |
Cluster Name | Un identifiant personnalisé pour le cluster open source auto-géré, utilisé pour distinguer les tâches. Il n'affecte pas les liens de service. | first |
VPC | L'ID du VPC dans lequel le cluster open source auto-géré est déployé. Ce paramètre est requis uniquement lorsque Network Type est défini sur VPC-connected Cluster. | vpc-bp1mhd24chrxn |
vSwitch | Les informations sur le vSwitch sont utilisées uniquement par l'outil de migration ApsaraMQ for RocketMQ pour établir un canal réseau permettant d'accéder au cluster open source auto-géré. Elles ne spécifient pas le vSwitch dans lequel le cluster est déployé. Respectez les règles suivantes :
Ce paramètre est requis uniquement lorsque Network Type est défini sur VPC-connected Cluster. | vsw-bp1hejs0los38rn |
Security Group | Nous vous recommandons de sélectionner le groupe de sécurité auquel appartient l'instance ECS du cluster auto-géré. Si vous en sélectionnez un autre, assurez-vous que les règles du groupe de sécurité sélectionné autorisent l'accès aux nœuds de l'instance ApsaraMQ for RocketMQ de destination. Ce paramètre est requis uniquement lorsque Network Type est défini sur VPC-connected Cluster. | sg-bp160qvtcxvwl |
Name Server Address | L'adresse du name server du cluster open source auto-géré. Séparez plusieurs adresses par des virgules (,) ou des points-virgules (;). Important Vous devez configurer les informations du name server pour tous les clusters auto-gérés à migrer. Si des informations manquent, vous ne pourrez pas sélectionner les topics requis pour la migration dans les étapes suivantes. | 192.168.XX.XX:9876 |
Access Credential |
| ACL |
Username | Le compte Admin du cluster open source auto-géré. Ce paramètre est requis uniquement si la liste de contrôle d'accès (ACL) est activée pour le cluster open source auto-géré. | admin |
Password | Le mot de passe du compte Admin du cluster open source auto-géré. Ce paramètre est requis uniquement si la liste de contrôle d'accès (ACL) est activée pour le cluster open source auto-géré. |
Étape 3 : Migrer les métadonnées
Une fois la connexion réseau établie, sélectionnez les topics et les groupes spécifiés en fonction du périmètre de migration afin de finaliser la migration des métadonnées.
Remarques sur l'utilisation
Lors de la migration des métadonnées, l'outil de migration ApsaraMQ for RocketMQ lit et affiche dynamiquement tous les topics et groupes du cluster auto-géré source. Sélectionnez uniquement les topics et les groupes pertinents pour la tâche de migration actuelle.
Cette étape est irréversible. Assurez-vous d'avoir migré tous les topics et groupes inclus dans le périmètre de migration actuel avant de passer à l'étape suivante. Dans le cas contraire, vous devrez ajouter manuellement les topics manquants ultérieurement.
Procédure
Sur la page Metadata Migration de l'assistant de migration, cliquez sur l'onglet Topic Metadata.
-
Dans la liste des topics, sélectionnez ceux que vous souhaitez migrer, choisissez le type de message correspondant dans la liste déroulante Message Type, puis cliquez sur Confirm and Import dans la colonne Actions.
Vous pouvez également sélectionner plusieurs topics et cliquer sur Batch Import.
ImportantApache RocketMQ open source 4.x ne prend pas en charge la notion de types de messages. ApsaraMQ for RocketMQ valide la cohérence entre le type de message configuré pour un topic et le type de message réel. Par conséquent, lors de la migration des métadonnées, vous devez saisir manuellement le type de message du topic en fonction de votre scénario métier.
Si vous sélectionnez un type de message incorrect, la production et la consommation de messages échoueront après la migration. Si vous n'êtes pas certain du type de message du topic ou si un topic est utilisé pour des types de messages mixtes, soumettez un ticket pour obtenir de l'aide.
-
Cliquez sur l'onglet Group Metadata. Dans la liste des groupes, sélectionnez ceux que vous souhaitez migrer, choisissez l'ordre de livraison pour la consommation des messages dans la liste déroulante Consumption Order, puis cliquez sur Confirm and Import dans la colonne Actions.
Vous pouvez également sélectionner plusieurs groupes et cliquer sur Batch Import.
ImportantDans les SDK Apache RocketMQ open source de la série 4.x, l'ordre de consommation des messages est configuré côté client. Dans les instances ApsaraMQ for RocketMQ 5.x, l'ordre de consommation d'un groupe est contrôlé côté serveur. Par conséquent, lors de la migration des métadonnées, vous devez saisir manuellement le type d'ordre de consommation du groupe en fonction de votre scénario métier.
Si vous sélectionnez un type d'ordre de consommation incorrect, l'ordre de consommation des messages risque d'être erroné après la migration. Si vous n'êtes pas certain de l'ordre de consommation du groupe, soumettez un ticket pour obtenir de l'aide.
Après avoir confirmé que tous les topics et groupes de cette tâche de migration ont été importés, cliquez sur Next.
Étape 4 : Modifier l'endpoint
Durant cette phase, préparez la migration du service de production. Modifiez l'endpoint dans toutes les applications productrices et consommatrices concernées pour utiliser celui de l'instance ApsaraMQ for RocketMQ 5.x de destination.
Remarques sur l'utilisation
Après avoir modifié l'endpoint, redémarrez les applications productrices et consommatrices. Bien que cette étape connecte les applications de messagerie à l'instance ApsaraMQ for RocketMQ de destination, le backend de l'outil de migration continue de router le trafic du topic vers le cluster auto-géré source. Par conséquent, les liens de messagerie restent inchangés à ce stade. Vous pouvez basculer les applications de messagerie dans n'importe quel ordre.
Assurez-vous que toutes les applications productrices et consommatrices impliquées dans cette migration ont modifié leurs endpoints avant de passer à l'étape suivante.
Exemple de modifications d'endpoint
Pour le SDK utilisant le protocole Apache RocketMQ Remoting, effectuez les configurations suivantes en fonction de la version du SDK :
-
Avant la modification :
producer.setNamesrvAddr("192.168.XX.XX:9876"); consumer.setNamesrvAddr("192.168.XX.XX:9876"); -
Après la modification :
Version du SDK >= 4.5.1
producer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // The default value of vipChannelEnabled is false. If you have set it to true, you must remove this configuration. // producer.setVipChannelEnabled(false); consumer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // The default value of vipChannelEnabled is false. If you have set it to true, you must remove this configuration. // consumer.setVipChannelEnabled(false);Version du SDK < 4.5.1
producer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // The default value of vipChannelEnabled is true. You must set it to false. producer.setVipChannelEnabled(false); consumer.setNamesrvAddr("rmq-cn-pe334******-vpc.cn-hangzhou.rmq.aliyuncs.com:8080"); // The default value of vipChannelEnabled is true. You must set it to false. consumer.setVipChannelEnabled(false);
Procédure
Après avoir modifié les configurations d'endpoint dans vos applications de messagerie et redémarré les applications, cliquez sur Next sur la page Change Endpoint de l'assistant de migration.
Étape 5 : Migrer le trafic de messagerie
Pour migrer le trafic de messagerie, vous devez basculer le trafic pour chaque topic individuellement afin de transférer progressivement le trafic en lecture et en écriture vers l'instance de destination.
Remarques sur l'utilisation
Lorsque vous effectuez une opération de basculement de trafic, surveillez la production et la consommation de messages pour vous assurer qu'elles correspondent aux attentes après chaque changement d'état du topic. Si aucune anomalie n'est détectée, poursuivez avec l'opération de basculement suivante. En cas d'anomalie, vous pouvez immédiatement annuler l'opération. Après avoir identifié et résolu la cause de l'anomalie, vous pouvez reprendre l'opération de basculement de trafic.
Assurez-vous que le basculement de trafic est terminé pour tous les topics inclus dans le périmètre de la tâche de migration et que l'envoi et la réception de messages sont stables, sans aucune anomalie, avant de finaliser la tâche de migration. Une tâche de migration ne peut pas être modifiée une fois terminée.
Étapes du basculement de trafic
Tableau 2. Étapes du basculement de trafic
Étape | Description | Topologie du trafic |
Read and Write in Source Cluster | Étape initiale de la migration des messages.
|
|
Write in Source Cluster and Read in Source and Destination Clusters |
|
|
Write in Destination Cluster and Read and Write in Source and Destination Clusters |
À ce stade, l'instance de destination gère à la fois le trafic de production et de consommation des messages. Vérifiez que le nouveau flux de messagerie fonctionne normalement et attendez que tous les messages du cluster source soient entièrement consommés. Important À ce stade, assurez-vous que tous les messages du cluster source ont été consommés et qu'aucun message planifié n'est en attente avant de passer à l'étape Read and Write in Destination Cluster. |
|
Read and Write in Destination Cluster | Après avoir confirmé que le nouveau flux de messagerie répond aux attentes et que tous les messages accumulés dans le cluster source ont été consommés, vous pouvez faire passer le topic à cet état. À ce moment-là, le trafic en lecture et en écriture est dirigé uniquement vers l'instance de destination, et la migration est terminée.
|
|
Basculement de trafic
-
Sur la page Message Migration de l'assistant de migration, sélectionnez le topic que vous souhaitez migrer et vérifiez son statut de validation.
Si le statut est Check Passed, passez à l'étape suivante.
-
Si le statut n'est pas Check Passed, résolvez le problème. Cliquez sur Re-verify dans la colonne Actions jusqu'à ce que la validation réussisse, puis passez à l'étape suivante.
Pour connaître les validations effectuées à chaque étape du basculement de trafic, consultez la section Validations.
Si le statut n'est pas Check Passed mais que vous confirmez que le résultat de la validation n'est pas bloquant, cliquez sur Ignore Check dans la colonne Actions pour le topic spécifié, puis passez à l'étape suivante.
Dans la colonne Actions du topic à basculer, cliquez sur Switch Traffic.
-
Dans la boîte de dialogue qui s'affiche, lisez attentivement l'invite et cliquez sur OK.
Le processus de basculement de trafic comporte quatre étapes. Vous devez effectuer l'opération de basculement pour chaque étape jusqu'à ce que l'Traffic Switching Stage du topic devienne Read and Write in Destination Cluster.
Pour plus d'informations sur le statut du trafic en lecture et en écriture du topic à chaque étape du basculement, consultez la section Étapes du basculement de trafic.
Après avoir confirmé que le basculement de trafic est terminé pour tous les topics de cette tâche de migration, cliquez sur Migrated en bas de la page.
Opérations connexes
Voici les autres opérations disponibles sur la page de migration des messages durant le basculement de trafic :
-
Roll Back
Retour à l'étape précédente : si un résultat inattendu se produit lors de la migration, vous pouvez revenir à la dernière étape fonctionnelle normale pour l'étape de basculement de trafic du topic spécifié. Après avoir résolu la cause de l'anomalie, vous pouvez décider des opérations suivantes.
-
Retour à l'étape initiale : cette méthode force directement le retour de l'étape de basculement de trafic à l'état initial, c'est-à-dire l'état de routage avant le début du basculement de trafic. Cette méthode est généralement utilisée pour une atténuation d'urgence.
RemarqueCette méthode implique un changement d'état significatif. Les messages non consommés générés pendant le processus de migration peuvent subir des retards ou rester non traités.
-
Create Topic
Si vous avez omis un topic lors de la migration des métadonnées, vous pouvez l'ajouter durant la tâche de basculement de trafic. Cela implique de créer manuellement un topic dans l'instance ApsaraMQ for RocketMQ 5.x avec le même nom que le topic du cluster source.
-
Batch Traffic Switching/Batch Rollback
Effectuez des opérations de basculement de trafic ou de retour arrière par lots.
RemarqueLe basculement par lots et le retour arrière par lots s'appliquent uniquement aux topics qui se trouvent dans la même Traffic Switching Stage.
Validation de l'étape de basculement
Tableau 3. Validations
Étape de basculement de trafic | Validation |
Passer à l'étape Write in Source Cluster and Read in Source and Destination Clusters |
|
Passer à l'étape Write in Destination Cluster and Read and Write in Source and Destination Clusters |
|
Passer à l'étape Read and Write in Destination Cluster |
|
Étape 6 : Finaliser la tâche de migration
Remarques sur l'utilisation
Avant de finaliser la tâche de migration, assurez-vous que tous les messages planifiés dans le cluster RocketMQ open source auto-géré ont été consommés.
Vous ne pouvez mettre hors service le cluster RocketMQ open source auto-géré qu'une fois la tâche de migration terminée.
Procédure
Sur la page Migration to Cloud dans la colonne Details.
Sur la page Actions de la tâche de migration, cliquez sur Details.
Documents connexes
Pour plus d'informations sur les différences entre Apache RocketMQ open source et ApsaraMQ for RocketMQ, ainsi que sur les principes et les avantages de la solution de migration, consultez la section Présentation de la migration vers le cloud.
Une fois la tâche de migration terminée, vous pouvez utiliser les métriques du tableau de bord ApsaraMQ for RocketMQ pour vérifier que l'instance fonctionne comme prévu et que les données métier sont normales. En cas d'anomalies, vous pouvez effectuer un retour arrière à tout moment.



