Introduction aux concepts de base de RabbitMQ

Schéma conceptuel 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.