Qu'est-ce qu'un message broker ?
La façon dont les applications communiquent devient un défi de plus en plus important. L'utilisation d'un middleware de messagerie simplifie ce défi et permet de disposer d'une infrastructure de communication commune qui se développe et évolue pour répondre aux conditions les plus exigeantes. Mais la communication peut prendre de nombreuses formes différentes et la façon dont les middleware de messagerie assurent la communication n'est pas différente.
L'une des méthodes de communication utilisées par les middleware de messagerie est un modèle basé sur un serveur qui utilise un message broker. Avec un message broker, l'application source (le producteur) envoie un message à un processus serveur qui peut assurer le rassemblement des données, le routage, la traduction des messages, la persistance et la livraison à toutes les destinations appropriées (les consommateurs). La caractéristique principale d'un message broker est que le broker lui-même est un service distinct. Les producteurs et les consommateurs communiquent avec le broker en utilisant des protocoles standard ou propriétaires. Le message broker assure généralement la gestion de l'état et le suivi des clients, de sorte que les applications individuelles n'ont pas à assumer cette responsabilité et que la complexité de la livraison des messages est intégrée au message broker lui-même.
Il existe deux formes de communication de base avec un message broker :
- Publier et s'abonner (thèmes)
- Point à point (files d'attente)

Messagerie de publication et d'abonnement
Dans un système de messagerie de type « publish and subscribe », les producteurs envoient des messages sur un sujet. Dans ce modèle, le producteur est appelé « éditeur » et le consommateur est appelé « abonné ». Un ou plusieurs éditeurs peuvent publier sur le même sujet, et un message provenant d'un ou de plusieurs éditeurs peut être reçu par plusieurs abonnés. Les abonnés s'abonnent à des sujets, et tous les messages publiés sur le sujet sont reçus par tous les abonnés du sujet. Ce modèle permet une diffusion simple, axée sur les intérêts, en fonction des sujets auxquels les applications sont abonnées.
Communication point-à-point
Les communications point-à-point, dans leur forme la plus simple, ont un producteur et un consommateur. Ce style de messagerie utilise généralement une file d'attente pour stocker les messages envoyés par le producteur jusqu'à leur réception par le consommateur. Le producteur de messages envoie le message à la file d'attente ; le consommateur de messages récupère les messages de la file d'attente et envoie un accusé de réception du message. Plus d'un producteur peut envoyer des messages à la même file d'attente, et plus d'un consommateur peut récupérer des messages de la même file d'attente. Lorsque plusieurs consommateurs sont utilisés, chaque consommateur reçoit généralement une partie du flux de messages pour permettre un traitement simultané.
Message brokers basés sur le serveur
Les message brokers basés sur un serveur présentent de nombreux avantages, notamment le traitement centralisé, la distribution centralisée de messages et la persistance centralisée des données. Parmi les exemples, citons de nombreux message brokers propriétaires, des implémentations de Java Message Service (JMS) et des produits open source tels que Apache Kafka, Apache Pulsar et Eclipse Mosquitto.
Dans certains cas, un modèle de communication décentralisé est nécessaire. Cette approche « brokerless » (sans broker) ou pair à pair fournit généralement un mécanisme permettant de prendre en charge la communication directe entre les applications pour les cas d'utilisation où une très faible latence est requise.