Introduction aux concepts de base de RabbitMQ
Schéma conceptuel de RabbitMQ
Explication des concepts
Message
Un message est composé d'un en-tête (c'est-à-dire des informations de configuration supplémentaires) et d'un corps de message (c'est-à-dire le contenu du message).
Éditeur
Le producteur du message, qui est une application cliente publiant des messages vers une exchange.
Exchange
Une exchange est utilisée pour recevoir les messages envoyés par les producteurs et router ces messages vers des files d'attente dans le serveur.
Il existe quatre types d'exchange :
-
Type direct : Compare la clé de routage dans le message avec les clés de routage associées à tous les bindings de l'exchange. S'ils correspondent, le message est envoyé vers la file d'attente correspondante de ce binding.
-
Type topic : Compare la clé de routage dans le message avec les clés de routage associées à tous les bindings de l'exchange. S'il y a correspondance, le message est envoyé vers la file d'attente correspondante de ce binding.
-
Type fanout : Transfère directement les messages vers les files d'attente correspondantes de tous les bindings, ignorant la clé de routage lors du routage.
-
Type headers : Correspond les en-têtes dans le message avec les paramètres associés à tous les bindings de l'exchange. S'il y a correspondance, le message est envoyé vers la file d'attente correspondante de ce binding (moins couramment utilisé, similaire au type direct).
Remarque : Des explications détaillées sur les types d'échange seront fournies dans les prochaines sections sur les modes de fonctionnement. Ceci est juste un aperçu.
Binding
La relation utilisée pour établir une connexion entre les files d'attente de messages et les exchanges.
File d'attente
Une file d'attente de messages utilisée pour stocker les messages jusqu'à ce qu'ils soient livrés aux consommateurs. Elle sert à la fois de conteneur pour les messages et de point d'arrivée pour les messages. Un message peut être livré à une ou plusieurs files d'attente. Les messages restent dans la file d'attente, en attente que les consommateurs se connectent et les récupèrent.
Connexion
Une connexion réseau, telle qu'une connexion TCP.
Canal
Un canal est une connexion virtuelle établie dans le cadre d'une vraie connexion TCP. Toutes les commandes AMQP sont envoyées via des canaux, que ce soit pour publier des messages, s'abonner à des files d'attente ou recevoir des messages. Cette conception introduit le concept de canaux pour réutiliser une seule connexion TCP, car l'établissement et la rupture de connexions TCP sont coûteux pour le système d'exploitation.
Consommateur
Le consommateur de messages, représentant une application cliente qui récupère des messages des files d'attente de messages.
Hôte virtuel
Un hôte virtuel représente un ensemble d'échanges, de files d'attente de messages et d'objets associés. Il s'agit d'un domaine de serveur indépendant partageant le même environnement d'authentification et de chiffrement. Chaque vhost est essentiellement une mini-version d'un serveur RabbitMQ, avec ses propres files d'attente, exchanges, bindings et mécanismes d'autorisation.
Les vhosts sont un concept fondamental dans AMQP et doivent être spécifiés lors de l'établissement d'une connexion. L'hôte virtuel par défaut pour RabbitMQ est /.
Remarque : L'hôte virtuel est une forme de stratégie d'isolation des ressources qui permet de partitionner plusieurs espaces isolés au sein du même serveur RabbitMQ.
Courtier
Représente l'entité physique du serveur de file d'attente de messages.