RabbitMQ O ffice de la F ormation P rofessionnelle et de la P romotion du T ravail مكتب التكوين المهني وإنعاش الشغل I nstitut S pécialisé de T echnologie A ppliquée TAOURIRT R éalisé par : Mohamed Nhiri El Houcine Qara Encadr é par : T ayeb Bachaoui Groupe : DD202 Année de formation : 2022-2023
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.
Définition de RabbitMQ
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.
Notion de message, Queue, Exchange de RabbitMQ
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
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é .
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 ,
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.
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.
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 .
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
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
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
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 M
2 Notion de message, Queue, Exchange de RabbitMQ Producteur Exchange Queue msg Consomateur binding With a routing key Subscribe Consumer
2 Notion de message, Queue, Exchange de RabbitMQ Comment ajouter un exchange ? Connectez-vous à l'interface de gestion de RabbitMQ http://localhost:15672 / Cliquez sur l'onglet "Exchanges" dans la barre de navigation. Cliquez sur le bouton " Add a new Exchange" en haut à droite de la page. Remplissez les informations nécessaires pour l'échange, telles que le nom de l'échange , le type d'échange et les arguments facultatifs . Cliquez sur le bouton " Add Exchange" pour enregistrer l'échange.
2 Notion de message, Queue, Exchange de RabbitMQ Comment lier un Exchange avec un Queue ?
2 Notion de message, Queue, Exchange de RabbitMQ Comment envoyer un message vers un Queue ?
Installation et configuration de RabbitMQ.
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 :
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 :
• Pour Démarrer Rabbit MQ : A aller dans le menu Démarrer de Windows Et Rechercher « RabbitMQ » Cliquer sur « RabbitMQ Service Start » • Pour Arrêter Rabbit MQ : A aller dans le menu Démarrer de Windows Et Rechercher « RabbitMQ » Cliquer sur « RabbitMQ Service Stop » Etape 3 : Pour Démarrer/Arrêter RabbitMQ :
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
• 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