RabbitMQ - Solution Message-Oriented Middleware
Présentation
Rappel
AMQP est l'acronyme de Advanced Message Queuing Protocol. C'est un protocole pour les systèmes de messagerie orientés messages (MOM), créé en 2004 à l'initiative de la banque JPMorgan Chase, pour gérer la communication entre ses différents partenaires. Les spécifications d'AMQP ont été définies par un consortium international, composé de grandes entreprises comme Red Hat, Cisco Systems et Microsoft.
Principe
L'objectif d'AMQP est de permettre aux applications client, implémentant ce protocole,
de communiquer avec un serveur de messagerie orienté messages implémentant lui aussi AMQP. Ce dernier résoud par
ailleurs les problèmes d'interopérabilité, présents dans les solutions comme Tibco MQ et IBM MQ, en permettant de
ne pas se soucier du système d'exploitation ou du langage de programmation des solutions communiquant ensemble.
Le fonctionnement de ce protocole consiste en trois principes :
- Routage : où sont envoyés les messages ?
- Livraison : comment peuvent-ils arriver à destination ?
- Fidélité : ce qui doit rentrer, doit sortir.
Modèle
Le modèle d'AMQP représenté ci-dessous souligne les principes de ce protocole.
Le schéma ci-dessus illustre le fonctionnement du modèle AMQP, qui prend place dès l'envoi d'un message jusqu'à sa réception. Le modèle AMQP comporte trois types de composants :
- Exchange : détermine l'aiguillage du message, en fonction de règles appelées bindings.
- Queue : stocke les messages en attente d'être consommé.
- Binding : connecte exchange et queue.
Le message envoyé par le producteur contient les données du message, accompagnées de différentes propriétés :
- Metadata : champs décrivant le message (ex : encodage du contenu).
- Flags : booléen de livraison et/ou garantie de livraison.
- Routing key : clé définissant le nom de l'exchange.