ApsaraMQ for RabbitMQ est un service de messagerie entièrement géré basé sur le protocole AMQP 0-9-1. Il garantit une messagerie fiable à grande échelle grâce à une architecture de stockage distribué haute disponibilité, sans la charge opérationnelle liée à la gestion autonome de clusters RabbitMQ.
ApsaraMQ for RabbitMQ est compatible avec les clients RabbitMQ open source, ce qui permet aux applications existantes de se connecter avec des modifications de code minimales. Le service offre des fonctionnalités cloud-native, notamment une forte concurrence, une architecture distribuée et une mise à l'échelle élastique. Son infrastructure gérée élimine les problèmes de stabilité courants liés à l'auto-hébergement, tels que l'accumulation de messages et les situations de split-brain.
Qui devrait utiliser ApsaraMQ for RabbitMQ ?
ApsaraMQ for RabbitMQ s'adresse aux développeurs, architectes et équipes d'exploitation qui :
Ont besoin d'un broker de messages conforme aux standards (AMQP 0-9-1) sans gérer l'infrastructure
Souhaitent migrer d'une instance RabbitMQ auto-hébergée vers un service géré offrant une compatibilité totale des clients
Exigent une messagerie haute disponibilité avec tolérance aux pannes intégrée et mise à l'échelle élastique
Service géré par rapport à RabbitMQ auto-hébergé
ApsaraMQ for RabbitMQ présente des avantages majeurs par rapport à RabbitMQ open source en termes de performances, de stabilité et de fonctionnalités. En tant que service géré, il supprime la charge opérationnelle liée à la gestion des nœuds du broker, du stockage et du basculement. Pour une comparaison détaillée, consultez Comparaison avec RabbitMQ open source.
Concepts clés
| Concept | Description |
|---|---|
| Producer | Application qui envoie des messages à un exchange. |
| Consumer | Application qui reçoit et traite les messages d'une file d'attente. |
| Exchange | Reçoit les messages des producers et les achemine vers une ou plusieurs files d'attente selon des règles de routage. |
| Queue | Zone tampon qui stocke les messages jusqu'à ce qu'un consumer les récupère. |
| Binding | Lien entre un exchange et une file d'attente qui définit la règle de routage. |
| Routing key | Attribut de message que l'exchange évalue par rapport aux bindings pour déterminer quelles files d'attente recevront le message. Considérez-le comme une étiquette d'adresse sur le message. |
| Connection | Connexion TCP entre votre application et le broker ApsaraMQ for RabbitMQ. |
| Channel | Connexion virtuelle légère au sein d'une connexion TCP. Toutes les opérations de publication et de consommation s'exécutent via des channels, permettant plusieurs opérations simultanées sur une seule connexion. |
Pour la liste complète des termes, consultez Glossaire.
Fonctionnement
Un message traverse ApsaraMQ for RabbitMQ en cinq étapes :
Un producer publie un message sur un exchange et spécifie une routing key.
L'exchange évalue la routing key par rapport à ses bindings.
Selon le type d'exchange et les règles de binding, l'exchange achemine le message vers une ou plusieurs files d'attente.
Le message reste dans la file d'attente jusqu'à ce qu'un consumer le récupère.
Le consumer extrait le message de la file d'attente, le traite et envoie un accusé de réception.
Types d'exchange
Le type d'exchange détermine la manière dont les messages sont routés :
| Type | Comportement de routage |
|---|---|
| Direct | Achemine les messages vers les files d'attente dont la binding key correspond exactement à la routing key. |
| Fanout | Diffuse les messages à toutes les files d'attente liées, en ignorant les routing keys. |
| Topic | Achemine les messages par correspondance de motifs génériques entre la routing key et les patterns de binding. |
| Headers | Achemine les messages en fonction des attributs d'en-tête plutôt que de la routing key. |

Avantages
ApsaraMQ for RabbitMQ est flexible et facile à utiliser. Il offre plusieurs avantages par rapport à RabbitMQ auto-hébergé, notamment des fonctionnalités améliorées, des performances supérieures et une fiabilité élevée :
Aucune charge opérationnelle -- En tant que service géré, vous pouvez vous concentrer sur vos applications plutôt que sur la maintenance du broker.
Haute disponibilité -- Basé sur un stockage distribué avec basculement automatique. Élimine les risques de split-brain.
Mise à l'échelle élastique -- Adaptez le débit et le stockage à la demande.
Concurrence élevée -- Gère de grands volumes de connexions et de messages simultanés.
Compatibilité totale -- Fonctionne avec les bibliothèques clientes RabbitMQ open source existantes.
Pour plus de détails, consultez Avantages.
Fonctionnalités
En plus des capacités de RabbitMQ open source, ApsaraMQ for RabbitMQ propose :
Compatibilité open source -- Prend en charge AMQP 0-9-1 et fonctionne avec les bibliothèques clientes RabbitMQ standard.
Plusieurs types de messages -- Prend en charge divers types de messages pour s'adapter à différents modèles de messagerie.
Support O&M complet -- Surveillance intégrée et support opérationnel via la console Alibaba Cloud.
Pour la liste complète des fonctionnalités, consultez Fonctionnalités.
Cas d'utilisation
ApsaraMQ for RabbitMQ est utilisé dans divers secteurs tels que la finance, l'assurance, le gouvernement et les entreprises, le commerce électronique, le nouveau retail, la logistique, la vidéo interactive et l'énergie. Les cas d'utilisation typiques incluent :
Découplage asynchrone -- Séparez le traitement backend long des services orientés utilisateur. Par exemple, placez les tâches de traitement des commandes dans une file d'attente afin que le service web reste réactif pendant que les workers traitent l'exécution indépendamment.
Lissage des pics de charge -- Mettez en tampon les pics de trafic soudains dans des files d'attente et laissez les consumers traiter les messages à un rythme soutenable, évitant ainsi la saturation des systèmes en aval.
Synchronisation de cache distribué -- Diffusez les événements d'invalidation de cache vers plusieurs services via des exchanges fanout, maintenant ainsi la cohérence des caches distribués dans toute votre architecture.
Pour des descriptions détaillées des cas d'utilisation, consultez Scénarios.
Limites
ApsaraMQ for RabbitMQ applique des limites sur les clusters, les appels API et les caractères. Le dépassement de ces limites entraîne des erreurs d'application. Pour connaître les valeurs spécifiques, consultez Limites.
Étapes suivantes
Comparaison avec RabbitMQ open source : Comparaison des performances, de la stabilité et des fonctionnalités.
Avantages : Avantages par rapport à RabbitMQ auto-hébergé.
Fonctionnalités : Référence complète des fonctionnalités.
Scénarios : Détails des cas d'utilisation spécifiques à chaque secteur.
Glossaire : Référence terminologique complète.