RabbitMQ: Exemples d'utilisation de RabbitMQ
Cette documentation fait partie du guide Introduction. Consultez le guide complet ici : Introduction à Stackhero pour RabbitMQ.
Imaginez une application qui permet aux utilisateurs de télécharger toutes les factures de l'année passée en une seule action. Cette tâche implique de générer plusieurs factures PDF simultanément, ce qui peut être assez chronophage. Avec RabbitMQ, une application peut envoyer 12 messages contenant les détails des factures à un topic. Un système dédié à la génération de factures répondra ensuite à ces messages, produira les fichiers PDF et les renverra à RabbitMQ. Ensuite, l'application récupère les PDFs et les livre au client.
La véritable puissance de ce système réside dans sa capacité à exécuter plusieurs scripts simultanément pour générer des factures. Avec le même code, vous pouvez traiter ces 12 factures en parallèle ! Imaginez 100 utilisateurs demandant chacun leurs 12 dernières factures en même temps. Pas de souci, le système est désormais équipé pour évoluer et gérer de nombreux fichiers PDF simultanément !
Supposons maintenant que vous souhaitiez envoyer ces factures par e-mail. Vous pouvez créer un script qui accepte une adresse e-mail et un fichier PDF en entrée, puis envoie le PDF à l'e-mail spécifié. Connectez ce script d'envoi d'e-mails à RabbitMQ et configurez votre générateur de factures pour transférer les fichiers PDF au topic "emails". C'est aussi simple que cela. L'application peut désormais générer et envoyer des dizaines de factures efficacement par e-mail.
La fiabilité est un autre avantage clé. Si un script d'e-mail plante de manière inattendue lors de l'envoi d'une facture, RabbitMQ garantit que la facture n'est pas perdue. Un autre script d'e-mail peut reprendre la tâche et la terminer sans problème, maintenant ainsi la satisfaction des utilisateurs. RabbitMQ renforce à la fois la fiabilité et la cohérence.
Les cas d'utilisation sont innombrables. Si vous avez plusieurs systèmes ou applications nécessitant une communication fiable, ou si vous devez déléguer des tâches chronophages à d'autres systèmes, RabbitMQ pourrait être la solution dont vous avez besoin.
Exemple d'utilisation de RabbitMQ dans les applications de covoiturage ou de livraison de nourriture
Dans des applications comme Uber ou Lyft, lorsqu'un utilisateur demande un trajet, plusieurs informations sont présentées :
- Le prix du trajet
- La durée du trajet
- Le temps estimé de prise en charge
- L'itinéraire
Ces composants peuvent être divisés en services distincts, RabbitMQ facilitant la communication inter-services. Lorsqu'un utilisateur demande un trajet, le point de départ et la destination sont envoyés à ces services, qui calculent les données nécessaires en parallèle. Les résultats sont ensuite affichés à l'utilisateur au fur et à mesure de leur disponibilité. Si le calcul de la durée du trajet prend plus de temps, les autres informations seront tout de même affichées rapidement, minimisant ainsi la frustration de l'utilisateur.
De même, dans des applications comme GrubHub ou Deliveroo, lorsqu'un utilisateur sélectionne de la nourriture, plusieurs détails sont affichés :
- Disponibilité des plats
- Temps de livraison estimé
- Prix total du panier
Comme dans l'exemple Uber/Lyft, ces aspects peuvent être gérés par des services distincts, utilisant RabbitMQ pour gérer les échanges de messages.