À retenir
- Il sert de traducteur et d'aiguilleur entre applications.
- Il permet une communication asynchrone (l'expéditeur n'attend pas la réponse).
- Il garantit que les messages arrivent à destination même si un système est temporairement hors ligne.
Un agent de messages est un logiciel intermédiaire qui permet à différentes applications de communiquer entre elles, même si elles ne parlent pas la même langue technique. Imaginez un bureau de poste ultra-intelligent : il reçoit les lettres (données), les traduit si nécessaire, et les livre aux bons destinataires sans que l'expéditeur n'ait besoin de savoir où ils se trouvent ni comment ils fonctionnent.
Étymologie
Traduction directe de l'anglais message broker. Le terme « agent » (ou courtier) souligne son rôle de médiateur, tandis que « message » désigne l'unité d'information échangée de manière asynchrone entre les systèmes.
Exemples d'usage
- RabbitMQ : un outil très populaire pour gérer des files d'attente de tâches.
- Apache Kafka : utilisé pour traiter d'énormes flux de données en temps réel (comme les clics sur un site web).
- Amazon SQS : un service de messagerie dans le cloud pour lier des microservices.
Cas d'usage
On l'utilise principalement dans les architectures microservices pour éviter que les composants ne soient trop dépendants les uns des autres. Il sert aussi à gérer des tâches différées : par exemple, lorsqu'un utilisateur s'inscrit, le site web envoie un message à l'agent, qui chargera ensuite un autre service d'envoyer l'e-mail de confirmation sans ralentir l'affichage du site.
Bonnes pratiques
Il est crucial de surveiller la taille des files d'attente pour éviter que les messages ne s'accumulent (saturation). Il faut aussi prévoir une stratégie de retry (réessai) en cas d'échec de lecture d'un message pour ne perdre aucune donnée importante.
Synonymes
Antonymes
Conseil
Pour bien débuter, intéressez-vous au concept de Pub/Sub (Publication/Abonnement) : c'est le mode de fonctionnement le plus courant où une application publie une info et toutes celles qui sont abonnées à ce sujet la reçoivent instantanément.
Questions fréquentes
Quelle est la différence avec une API classique ?
Une API (REST) est généralement directe et synchrone : vous attendez la réponse immédiatement. Un agent de messages est asynchrone : vous déposez une commande et reprenez votre travail pendant qu'elle est traitée en arrière-plan.
Est-ce que cela ralentit le système ?
Au contraire, cela fluidifie souvent l'expérience utilisateur en déchargeant les tâches lourdes vers des services secondaires.