Tous les produits
Search
Centre de documentation

ApsaraMQ for RocketMQ:Instructions

Dernière mise à jour :Sep 21, 2026

Cette rubrique présente le guide d'utilisation, les paramètres de page et la foire aux questions (FAQ) relatifs à la réplication globale des messages, afin que vous puissiez rapidement comprendre et utiliser cette fonctionnalité.

Prérequis

Une instance ApsaraMQ for RocketMQ (file d'attente de messages cloud) doit être créée. Exigences de version :

  • Instances de la série 4,0 ApsaraMQ for RocketMQ.

    Remarque

    L'édition Standard des instances de la série 4,0 prend uniquement en charge la synchronisation unidirectionnelle.

  • Instances de la série 5,0 ApsaraMQ for RocketMQ.

Cette rubrique utilise des instances de la série 5,0 ApsaraMQ for RocketMQ comme exemple, à la fois pour le cluster source et le cluster cible.

Recommandations relatives aux spécifications

Lorsque vous utilisez la réplication globale des messages, la synchronisation des messages ajoute une surcharge TPS aux instances après la configuration des mappages de rubriques. Tenez compte des limites de TPS d'envoi et de réception de pointe des instances ApsaraMQ for RocketMQ source et cible de la tâche de synchronisation.

Spécifications recommandées :

Par exemple, sans synchronisation, une instance ApsaraMQ for RocketMQ affiche un TPS d'envoi de pointe de 10 000 messages/s et un TPS de réception de pointe de 10 000 messages/s.

Les configurations TPS suivantes sont recommandées pour l'instance source et l'instance cible :

Type de tâche

Instance source

Instance cible

Limite de TPS d'envoi et de réception de pointe (messages/s)

TPS d'envoi de pointe (messages/s)

TPS de réception de pointe (messages/s)

Limite de TPS d'envoi et de réception de pointe (messages/s)

TPS d'envoi de pointe (messages/s)

TPS de réception de pointe (messages/s)

Synchronisation unidirectionnelle

30 000

10 000

20 000

20 000

10 000

10 000

Synchronisation bidirectionnelle

40 000

20 000

20 000

40 000

20 000

20 000

Remarque
  • Consultez la limite de TPS d'envoi et de réception de pointe d'une instance sur la page Instance Details. Pour connaître les limites de TPS des instances selon différentes spécifications, consultez la section Limites des spécifications.

  • Ajustez le TPS de réception de pointe de l'instance cible en fonction de la vitesse de traitement requise par votre activité.

Créer une tâche de réplication globale des messages

Remarque

Lors de la première utilisation de la réplication globale des messages, la boîte de dialogue Alibaba Cloud Service Authorization - RocketMQ Global Message Replication s'affiche. Après avoir cliqué sur Confirm, le rôle lié au service AliyunServiceRoleForRMQDisasterRecovery du service cible est automatiquement créé, permettant ainsi à la fonctionnalité de réplication globale des messages de s'exécuter dans ApsaraMQ for RocketMQ. Pour plus d'informations, consultez la section Rôles liés au service.

Étape 1 : Créer une tâche

  1. Connectez-vous à la console ApsaraMQ for RocketMQ.

  2. Dans le volet de navigation de gauche, cliquez sur Global Message Replication, puis sur Create Task.

  3. Sur la page Create Task, saisissez les informations suivantes. Les principales configurations sont décrites ci-dessous. Configurez les autres paramètres selon vos besoins. Ensuite, cliquez sur Create.

    En haut de la page, définissez Task Name sur rocket-test, sélectionnez One-way Backup: synchronizes data from the source cluster to the destination cluster pour Task Type, et saisissez une Task Description si nécessaire. Configurez le cluster source et le cluster cible dans les volets gauche et droit. Une flèche entre les volets indique la direction de la synchronisation.

    Pour les configurations des différents types de clusters du cluster source et du cluster cible, consultez les tableaux suivants :

    ApsaraMQ for RocketMQ

    Paramètre

    Description

    Exemple

    Version

    Sélectionnez la version de l'instance ApsaraMQ for RocketMQ.

    • Instance de la série 4.0

    • Instance de la série 5,0

    Instance de la série 5,0

    Region

    Sélectionnez la région de l'instance ApsaraMQ for RocketMQ.

    Chine (Hangzhou)

    Instance

    Sélectionnez l'instance ApsaraMQ for RocketMQ.

    rmq-cn-778***

    Mode d'authentification

    • Aucune configuration requise

    • Authentification basée sur les ACL

    Authentification basée sur les ACL

    Nom d'utilisateur

    Sélectionnez un nom d'utilisateur.

    yS8x01****

    ID du groupe de sécurité

    Groupe de sécurité de l'instance ECS qui héberge l'instance ApsaraMQ for RocketMQ. Ce paramètre est requis lorsque Version est défini sur une instance de la série 5.0.

    • Règle entrante : Aucune exigence.

    • Règle sortante :

      • Politique : Autoriser

      • Protocole : TCP personnalisé

      • Destination : Le bloc CIDR doit inclure tous les blocs CIDR des vSwitch du cluster. La plage de ports doit inclure 8080 et 8081.

    sg-2ze4jlbqy2s40pc4****

    Configuration système des conditions de filtrage

    (Facultatif) Vous pouvez ajouter des attributs personnalisés (propriétés utilisateur) aux messages. Les consommateurs peuvent ensuite filtrer les messages en fonction d'une politique d'abonnement utilisant la syntaxe SQL-92.

    • Key : Clé de la propriété utilisateur.

    • Source cluster value : Valeur de la propriété utilisateur ajoutée aux messages provenant du cluster source.

    • Target cluster value : Valeur de la propriété utilisateur ajoutée aux messages provenant du cluster cible.

    Le code suivant fournit un exemple de filtrage d'abonnement SQL-92 :

    String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Target Cluster Value}";
    consumer.subscribe(MqConfig.TOPIC, 
        MessageSelector.bySql(sqlStr));

    Aucun

    Apache RocketMQ

    Paramètre

    Description

    Exemple

    Point d'accès

    Le format d'un point d'accès est {nom de domaine/IP}:{numéro de port}.

    XX.XX.XX.XX:8080

    Mode d'authentification

    • Aucune configuration requise

    • Authentification basée sur les ACL

    Authentification basée sur les ACL

    Nom d'utilisateur

    Saisissez un nom d'utilisateur en fonction de vos besoins métier.

    yS8x01****

    Mot de passe

    Saisissez un mot de passe en fonction de vos besoins métier.

    F17R4to****

    Type de réseau

    • Réseau public

    • VPC

    Réseau public

    Region

    Ce paramètre est requis si vous définissez Network type sur VPC. Sélectionnez la région des instances ECS sur lesquelles Apache RocketMQ est déployé.

    Chine (Hangzhou)

    VPC

    Ce paramètre est requis si vous définissez Network type sur VPC. Sélectionnez le VPC des instances ECS sur lesquelles Apache RocketMQ est déployé.

    vpc-bp17fapfdj0dwzjkd****

    vSwitch

    Ce paramètre est requis si vous définissez Network type sur VPC. Sélectionnez le vSwitch des instances ECS sur lesquelles Apache RocketMQ est déployé.

    vsw-bp1gbjhj53hdjdkg****

    ID du groupe de sécurité

    Ce paramètre est requis si vous définissez Network type sur VPC. Sélectionnez le groupe de sécurité des instances ECS sur lesquelles Apache RocketMQ est déployé.

    • Règle entrante : Aucune exigence.

    • Règle sortante :

      • Politique : Autoriser

      • Protocole : TCP personnalisé

      • Destination : Le bloc CIDR doit inclure les blocs CIDR de tous les nœuds Apache RocketMQ. La plage de ports doit inclure les ports de service de tous les nœuds Apache RocketMQ. Les ports par défaut sont 9876, 10911 et 10909. Si vous avez modifié les ports NameServer ou broker, vous devez spécifier les ports mis à jour.

    sg-2ze4jlbqy2s40pc4****

    Configuration système des conditions de filtrage

    (Facultatif) Vous pouvez ajouter des attributs personnalisés (propriétés utilisateur) aux messages. Les consommateurs peuvent ensuite filtrer les messages en fonction d'une politique d'abonnement utilisant la syntaxe SQL-92.

    • Key : Clé de la propriété utilisateur.

    • Source cluster value : Valeur de la propriété utilisateur ajoutée aux messages provenant du cluster source.

    • Target cluster value : Valeur de la propriété utilisateur ajoutée aux messages provenant du cluster cible.

    Le code suivant fournit un exemple de filtrage d'abonnement SQL-92 :

    String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Target Cluster Value}";
    consumer.subscribe(MqConfig.TOPIC, 
        MessageSelector.bySql(sqlStr));

    Aucun

Étape 2 : Configurer les mappages de rubriques

  1. Sur la page Task Basic Information, cliquez sur Message Synchronization Tasks dans le volet de navigation de gauche.

  2. Cliquez sur Batch Mapping ou Add Mapping pour configurer les mappages de rubriques pour la synchronisation dans la boîte de dialogue.

    • Batch Mapping : Configurez et sélectionnez les mappages de rubriques requis, puis cliquez sur OK.

    • Add Mapping : Configurez le mappage de rubrique requis, puis cliquez sur OK.

    Remarque
    • Si le cluster source est un cluster Apache RocketMQ, vous devez spécifier un groupe pour la synchronisation des messages. N'utilisez pas un groupe déjà utilisé pour les opérations métier.

    • La synchronisation des messages ne démarre qu'après la configuration des mappages de rubriques.

Étape 3 : (Facultatif) Activer la synchronisation de la progression des consommateurs

Après avoir activé la synchronisation de la progression des consommateurs, la progression actuelle de la consommation d'un groupe consommant une rubrique peut être synchronisée avec le cluster cible. Pour plus d'informations, consultez la section Synchronisation de la progression des consommateurs.

Configuration du client consommateur

Par exemple, vous configurez une tâche de synchronisation bidirectionnelle dans laquelle le cluster source est une instance ApsaraMQ for RocketMQ dans la région Chine (Shanghai) et le cluster cible est une instance ApsaraMQ for RocketMQ dans la région Chine (Hangzhou). La clé Key de la condition de filtrage est définie sur Region, la valeur du cluster source sur Shanghai et la valeur du cluster cible sur Hangzhou.

Dans des conditions normales, un client consommateur à Shanghai consomme uniquement les données de la région de Shanghai et ne consomme pas les données de Hangzhou. Une correspondance basée sur un seul attribut personnalisé est donc suffisante. Pour plus d'informations, consultez la section Filtrage des messages.

  • Abonnez-vous aux messages et faites correspondre en fonction d'un seul attribut personnalisé.

String topic = "topic";
// Subscribe only to the messages of the local region.
FilterExpression filterExpression = new FilterExpression("Region IS NOT NULL", FilterExpressionType.SQL92);
// The Region key in the user property is NULL for locally produced messages because the local producer application does not set this key.
simpleConsumer.subscribe(topic, filterExpression);
  • Abonnez-vous à tous les messages de la rubrique sans filtrage.

String topic = "topic";
// Subscribe to all messages.
FilterExpression filterExpression = new FilterExpression("True", FilterExpressionType.SQL92);
simpleConsumer.subscribe(topic, filterExpression);

FAQ

Puis-je synchroniser des données entre trois instances ?

Oui. Une tâche de réplication globale des messages est configurée entre deux instances. Pour synchroniser des données entre trois instances, vous devez configurer trois tâches. Cela garantit que chaque instance détient l'ensemble complet des données.

Puis-je utiliser le filtrage basé sur les tags pour les instances dans une configuration de synchronisation bidirectionnelle ?

Vous pouvez utiliser soit le filtrage basé sur les tags, soit le filtrage SQL, mais pas les deux simultanément. Étant donné que les applications consommatrices doivent utiliser le filtrage SQL pour filtrer les données, nous recommandons que les instances qui utiliseraient le filtrage basé sur les tags utilisent plutôt le filtrage SQL pour le filtrage des messages. Pour plus d'informations, consultez la section Filtrage des messages.

Puis-je modifier une tâche de synchronisation unidirectionnelle existante en une tâche bidirectionnelle ?

Si le cluster source et le cluster cible sont tous deux des instances ApsaraMQ for RocketMQ, la modification est prise en charge et n'affecte pas l'exécution des tâches unidirectionnelles existantes. Si l'un des clusters est un cluster Apache RocketMQ open source, la modification d'une tâche de synchronisation unidirectionnelle en une tâche de synchronisation bidirectionnelle n'est pas prise en charge. Vous devrez peut-être supprimer la tâche et la recréer.

Comment la réplication globale des messages est-elle facturée ?

Le canal de synchronisation de la réplication globale des messages dépend d'EventBridge. Pour connaître les tarifs d'EventBridge, consultez la section EventBridge. Lorsque la réplication globale des messages synchronise les données de message, elle consomme les performances de lecture de l'instance ApsaraMQ for RocketMQ source et les performances d'écriture de l'instance cible. Vous devez également évaluer les spécifications de calcul d'ApsaraMQ for RocketMQ.

J'ai configuré l'authentification basée sur les ACL pour la réplication globale des messages. Pourquoi les messages synchronisés ne sont-ils pas reçus ?

Après avoir configuré une tâche de synchronisation dans la réplication globale des messages, vous devez spécifier les rubriques à synchroniser. Le système crée un groupe système non supprimable pour chaque rubrique afin de synchroniser les données. Ce groupe est supprimé uniquement lorsque la tâche de synchronisation est supprimée. Si vous activez l'authentification basée sur les ACL, vous devez accorder à l'utilisateur ACL sélectionné des autorisations de lecture et d'écriture sur les rubriques et des autorisations de lecture sur les groupes. Sur la page Access Control de l'instance, sélectionnez l'utilisateur et définissez Resource name sur un caractère générique (*) pour accorder des autorisations complètes au compte. Cela simplifie la configuration.

Si je mets en pause puis reprends une tâche, la synchronisation continuera-t-elle là où elle s'était arrêtée ?

Oui. Après la reprise, la synchronisation continue à partir du message suivant le dernier offset acquitté. Assurez-vous que la durée de la pause ne dépasse pas la période de rétention des messages de l'instance ApsaraMQ for RocketMQ.