Les tâches de fédération exploitent les flux d'événements EventBridge pour mettre en œuvre la fonctionnalité du plug-in de fédération open source, ce qui vous permet de synchroniser et de répliquer les métadonnées et les messages entre plusieurs clusters.
Remarques sur l'utilisation
Les tâches de fédération ne prennent actuellement en charge que la fédération des exchanges (synchronisation des messages d'exchange à exchange). La fédération des files d'attente n'est pas encore disponible.
Assurez-vous que la taille maximale des messages sur l'instance RabbitMQ de destination est au moins égale à la taille maximale des messages sur l'instance source. Si la limite de destination est inférieure, les messages dépassant cette limite ne peuvent pas être routés, ce qui entraîne l'échec de la synchronisation des messages.
Facturation
Les tâches de fédération entraînent des frais supplémentaires composés de deux éléments :
Coût total = Frais ApsaraMQ for RabbitMQ + Frais de transfert EventBridge
Tarification ApsaraMQ for RabbitMQ : Pour plus d'informations, consultez la documentation de facturation d'ApsaraMQ for RabbitMQ.
Tarification EventBridge : Pour plus d'informations, consultez la documentation de facturation d'EventBridge.
Prérequis
Instances ApsaraMQ for RabbitMQ : L'instance source et le Vhost, ou l'instance de destination et le Vhost, sont créés et disponibles.
EventBridge est activé.
Cluster RabbitMQ open source (le cas échéant) : Si la source ou la destination est un cluster RabbitMQ open source, assurez-vous que le plug-in
rabbitmq_event_exchangeest activé. Pour plus d'informations, consultez la page Activer le plug-in rabbitmq_event_exchange.
Créer une tâche de fédération
Pour créer une tâche de fédération, effectuez les étapes suivantes : créez une tâche, autorisez le service, configurez les informations du cluster, définissez les paramètres de la tâche et vérifiez l'état de la tâche.
Étape 1 : Créer une tâche
Connectez-vous à la console ApsaraMQ for RabbitMQ.
Dans le volet de navigation de gauche, cliquez sur Federation Tasks.
Sur la page Federation Tasks, cliquez sur Create Task.
Étape 2 : Autoriser le service
Lors de la première création d'une tâche de fédération, le système crée automatiquement un rôle lié au service nommé AliyunServiceRoleForEventBridgeRabbitMQPlugin.
Dans la boîte de dialogue Alibaba Cloud Service Authorization, examinez les détails de l'autorisation et cliquez sur Confirm.
Description du rôle : AliyunServiceRoleForEventBridgeRabbitMQPlugin est un rôle lié au service qui permet à EventBridge de mettre en œuvre la fonctionnalité du plug-in RabbitMQ.
Étape 3 : Configurer les informations du cluster
Configurez les informations des clusters source et de destination.
Paramètres de configuration du cluster
|
Catégorie |
Paramètre |
Description |
Exemple |
|
RabbitMQ open source |
URL |
Le point de terminaison du cluster RabbitMQ open source. Le port par défaut est 5672. |
192.168.1.1 |
|
Nom d'utilisateur |
Le nom d'utilisateur du cluster RabbitMQ open source. |
admin |
|
|
Mot de passe |
Le mot de passe du cluster RabbitMQ open source. |
pass***word |
|
|
VPC |
L'ID du VPC du réseau où réside le cluster RabbitMQ open source. |
vpc-2zehiozskjdbb3*** |
|
|
vSwitch |
L'ID du vSwitch du réseau où réside le cluster RabbitMQ open source. |
vsw-m5hksicnqou22*** |
|
|
Groupe de sécurité |
L'ID du groupe de sécurité de l'hôte sur lequel le cluster RabbitMQ open source est déployé. |
sg-2ca1jjhsdxciap*** |
|
|
Virtual Host |
Le Vhost du cluster RabbitMQ open source. |
test-001 |
|
|
ApsaraMQ for RabbitMQ |
Instance |
L'ID de l'instance ApsaraMQ for RabbitMQ. |
amqp-cn-s1q2ksbq*** |
|
Virtual Host |
Le Vhost de l'instance ApsaraMQ for RabbitMQ. |
test-001 |
Étape 4 : Configurer les paramètres de la tâche
Configurez les paramètres de tâche suivants.
Configuration des paramètres de tâche
|
Catégorie |
Paramètre |
Description |
Options / Exemple |
|
Paramètres de tâche |
Nom de la tâche |
Le nom de la tâche de fédération. |
federation-task-001 |
|
Ordonnancement |
Indique si les messages sont synchronisés dans l'ordre : |
- Concurrent |
|
|
Paramètres de l'exchange de fédération |
Max hops |
Le nombre maximal de sauts qu'un message peut effectuer à travers les liens de fédération. Les messages dépassant cette limite sont supprimés. |
1 |
|
Expression d'exchange |
Une expression régulière qui correspond à un ou plusieurs noms d'exchange. Les exchanges correspondant à cette expression sont synchronisés avec le cluster source. |
.* |
Étape 5 : Vérifier l'état de la tâche
La tâche créée apparaît sur la page Federation Tasks avec un état initial de Starting.
Lorsque l'état passe à Running, la tâche de fédération a démarré avec succès.
Bonnes pratiques
1. Planifiez soigneusement le paramètre Max hops
Pour une synchronisation simple de point à point, définissez la valeur sur 1.
Pour les topologies de fédération multi-sauts, définissez la valeur en fonction de la profondeur réelle de la topologie.
Évitez de définir une valeur excessivement grande pour empêcher les messages d'être transférés en boucle.
2. Utilisez des expressions d'exchange précises
Utilisez des expressions régulières précises pour ne faire correspondre que les exchanges que vous devez synchroniser.
Évitez les expressions larges telles que
.*afin d'éviter la synchronisation d'exchanges inutiles.-
Exemples :
Faire correspondre tous les exchanges commençant par « order » :
^order.*Faire correspondre des exchanges spécifiques par nom :
^(order|payment|inventory)$
3. Choisissez le bon mode d'ordonnancement
Concurrent : Idéal pour les scénarios où l'ordre des messages n'est pas critique. Offre un débit plus élevé.
Sequential : Idéal pour les scénarios nécessitant un ordre strict des messages, tels que le traitement des commandes ou les transitions d'état.
4. Surveillez et configurez des alertes
Vérifiez régulièrement l'état de la tâche de fédération.
Configurez des alertes pour les arriérés de messages.
Surveillez la latence de synchronisation pour détecter les problèmes rapidement.
5. Planifiez votre réseau
Assurez-vous que la latence réseau entre les clusters source et de destination se situe dans une plage acceptable.
Pour la synchronisation interrégionale, envisagez d'utiliser Express Connect ou un VPN pour améliorer la stabilité du réseau.
Planifiez vos règles de VPC et de groupe de sécurité pour garantir la connectivité réseau.
FAQ
La tâche de fédération reste bloquée à l'état « Starting ». Que dois-je faire ?
Vérifiez les points suivants :
Vérifiez que les clusters source et de destination disposent d'une connectivité réseau.
Vérifiez que les identifiants du cluster (nom d'utilisateur et mot de passe) sont corrects.
Vérifiez que EventBridge est activé et autorisé.
Consultez la console pour identifier les messages d'erreur et effectuez le dépannage approprié.
Comment résoudre les retards ou les pertes de synchronisation des messages ?
Retards : Vérifiez l'utilisation de la bande passante réseau et envisagez d'optimiser la taille des messages ou d'augmenter la bande passante.
Pertes : Vérifiez que la limite de taille des messages sur l'instance de destination est au moins égale à celle de l'instance source. Vérifiez si le paramètre Max hops est approprié. Assurez-vous que l'expression d'exchange correspond correctement aux exchanges cibles.
Puis-je modifier une tâche de fédération après sa création ?
Les tâches de fédération ne peuvent pas être modifiées après leur création. Pour changer la configuration, supprimez la tâche existante et créez-en une nouvelle.
La fédération prend-elle en charge la synchronisation bidirectionnelle ?
Les tâches de fédération sont unidirectionnelles. Pour obtenir une synchronisation bidirectionnelle, créez deux tâches de fédération dans des directions opposées.
Références
Pour plus d'informations sur le plug-in de fédération open source, consultez la page Plug-in de fédération.