1. RabbitMQ
Office de la Formation Professionnelle
et de la Promotion du Travail
المهني التكوين مكتب
الشغل وإنعاش
Institut Spécialisé de Technologie Appliquée
TAOURIRT
Réalisé par :
Mohamed Nhiri
El Houcine Qara
Encadré par :
Tayeb Bachaoui
Groupe : DD202
Année de formation : 2022-2023
2. PLAN
1 Définition de RabbitMQ.
2 Notion de message, Queue, Exchange de RabbitMQ.
3 Communication entre microservices avec RabbitMQ.
4 Installation et configuration de RabbitMQ.
4. 1 Définition de RabbitMQ
RabbitMQ est un système de messagerie qui permet aux applications de
communiquer entre elles de manière asynchrone.
Il utilise des files d'attente (Queues) pour stocker et transmettre les messages
entre les applications, et prend en charge plusieurs protocoles de messagerie,
tels que AMQP, MQTT et STOMP.
RabbitMQ est open-source, facile à installer et à utiliser, et dispose d'une
documentation complète ainsi que d'une communauté active pour fournir un
support et des conseils en cas de besoin.
6. 2 Notion de message, Queue, Exchange de RabbitMQ
Broker
Publisher
Producer
Consumer
Subscriber
Reçoit les messages
Applications qui traitent les messages
Applications qui publient les messages
Pub/Sub
7. 2 Notion de message, Queue, Exchange de RabbitMQ
Message :
Un message est une unité de données qui contient les informations
que vous souhaitez envoyer à un destinataire
Les messages sont généralement stockés sous forme de chaînes de
caractères, mais ils peuvent également être représentés sous forme
de tableaux, de fichiers binaires ou d'autres formats. les messages
sont souvent des demandes de traitement ou des notifications à
envoyer à un ou plusieurs consommateurs (Consumers).
Chaque message est associé à une clé de routage (routing key) qui
permet de l'acheminer vers l'échange (exchange) approprié.
8. 2 Notion de message, Queue, Exchange de RabbitMQ
Exchange :
L’échange (exchange) est un élément qui reçoit les messages des
producteurs et les distribue aux files d'attente (queues)
correspondantes.
L'échange agit comme un point central de routage pour les messages.
Lorsqu'un message est envoyé à un échange, l'échange utilise la clé de
routage pour déterminer quelle(s) queue(s) doit recevoir ce message.
Il existe plusieurs types d'échanges dans RabbitMQ,
9. 2 Notion de message, Queue, Exchange de RabbitMQ
Exchange :
Il existe plusieurs types d'échanges dans RabbitMQ :
• Direct exchange : envoie le message à la queue avec la clé de routage
exacte du message.
• Topic exchange : utilise des expressions de routage pour acheminer les
messages à une ou plusieurs queues correspondantes.
• Header exchange : utilise des en-têtes de message pour acheminer les
messages à une ou plusieurs queues correspondantes.
• Fanout exchange : envoie le message à toutes les queues liées à l'échange,
sans utiliser de clé de routage.
10. 2 Notion de message, Queue, Exchange de RabbitMQ
Exchange :
Un échange peut être déclaré avec plusieurs attributs, tels que :
• Le nom de l'échange.
• Le type de l'échange.
• La durabilité (durable ou transient) : si l'échange est déclaré comme
durable, il sera conservé même en cas de redémarrage du serveur
RabbitMQ.
• La suppression automatique : si l'échange est déclaré avec l'option de
suppression automatique, il sera supprimé dès qu'il n'a plus aucune queue
qui y est attachée.
11. 2 Notion de message, Queue, Exchange de RabbitMQ
Queue :
Ce sont des files d'attente où les messages sont stockés jusqu'à ce
qu'un consommateur les récupère.
Les messages sont ajoutés à la queue par les producteurs à partir de
l’exchange et récupérés par les consomateurs.
12. 2 Notion de message, Queue, Exchange de RabbitMQ
Producteur Exchange Queue
msg
Consomateur
Question : Qui signifie cette partie ?
La réponse : RabbitMQ Slide 6
Indication !!! MQ
13. 2 Notion de message, Queue, Exchange de RabbitMQ
Producteur Exchange Queue
msg
Consomateur
Question : Quel élément reçoit le message dans RabbitMQ?
La réponce : exchange
14. 2 Notion de message, Queue, Exchange de RabbitMQ
Producteur Exchange Queue
msg
Consomateur
binding
Binding : C’est le processus de la
liaison entre Exchange et Queue
With a
routing key
15. 2 Notion de message, Queue, Exchange de RabbitMQ
Producteur Exchange Queue
msg
Consomateur
binding
Exmple : Le producteur envoie un
message M
- l’exchange envoye M aux Q1 et Q2
With a
routing key
Exchange Q2
M
Q1
Q2
16. 2 Notion de message, Queue, Exchange de RabbitMQ
Producteur Exchange Queue
msg
Consomateur
binding
With a
routing key
Subscribe
Consumer
17. 2 Notion de message, Queue, Exchange de RabbitMQ
- Comment ajouter un exchange ?
1. Connectez-vous à l'interface de gestion de RabbitMQ
http://localhost:15672/
2. Cliquez sur l'onglet "Exchanges" dans la barre de
navigation.
3. Cliquez sur le bouton "Add a new Exchange" en haut à droite de
la page.
4. Remplissez les informations nécessaires pour l'échange, telles
que le nom de l'échange, le type d'échange et les
arguments facultatifs.
5. Cliquez sur le bouton "Add Exchange" pour enregistrer
l'échange.
18. 2 Notion de message, Queue, Exchange de RabbitMQ
- Comment lier un Exchange avec un Queue ?
19. 2 Notion de message, Queue, Exchange de RabbitMQ
- Comment envoyer un message vers un Queue ?
21. Comment Installer RabbitMQ :
Le serveur RabbitMQ nécessite Erlang OTP pour fonctionner.
• Note
:
Etape 1 :Installer RabbitQM
https://rabbitmq.com/install-windows.html
• Ouvrir l’interface web
RabbitMQe sur :
• Après le téléchargement, Lancer er
terminer l’installation :
22. Etape
2:
Installer Erlang OTP
• Ouvrir l’interface Erlang OTP
web sur : https://www.erlang.org/downloads
Cliquez ici pour twlecharger :
• Après le téléchargement, Lancer et
terminer l’installation :
23. • Pour Démarrer Rabbit MQ :
Aaller dans le menu Démarrer de Windows Et
Rechercher «RabbitMQ »
Cliquer sur « RabbitMQ Service Start »
• Pour Arrêter Rabbit MQ :
Aaller dans le menu Démarrer de Windows Et
Rechercher «RabbitMQ »
Cliquer sur « RabbitMQ Service Stop »
Etape 3
:
Pour Démarrer/Arrêter RabbitMQ:
24. Etape
4:
Console D’Administration :
La console est disponible via
le plugin :rabbitmq_management
• Pour Activer Le Plugin:
Ouvrir un terminal de commandes .
Aller dans le répertoire "sbin " de
RabbitMQ .
Lancer la commande suivante: ./rabbitmq-
plugins.bat enable rabbitmq_management
25. • Aller sur l'URL : http://localhost:15672/
Installer Java 11+
Etape 2
:
Etape 5
:
Login
• Utiliser guest/guest pour se connecter et
changer le mot de passe