Accueil
Thèmes
Files d'attente de messages : une introduction
Une file d'attente de messages est un composant de middleware de messagerie qui permet à des applications et à des services indépendants d'échanger des informations. Les files d'attente de messages stockent les « messages », des paquets de données que les applications créent pour que d'autres applications les consomment, dans l'ordre où ils sont transmis jusqu'à ce que l'application consommatrice puisse les traiter. Cela permet aux messages d'attendre en toute sécurité jusqu'à ce que l'application de réception soit prête. S'il y a un problème avec le réseau ou l'application de réception, les messages dans la file d'attente ne sont pas perdus.
Ce modèle, appelé messagerie asynchrone, évite la perte de données et permet aux systèmes de continuer à fonctionner en cas d'échec de procédure ou de connexion. Cela permet aux développeurs de maintenir des processus et des applications distinctes, en gardant leurs communications autonomes et guidées par les événements afin de rendre l'architecture plus fiable.
Les files d'attente de messages sont disponibles dans les solutions de messagerie à travers de nombreuses options de déploiement, y compris les appareils physiques optimisés, les services cloud, les mainframes, et en tant que logiciel.
Les solutions de files d'attente de messages sont largement utilisées dans tous les secteurs et peuvent offrir un éventail d'avantages aux développeurs ainsi qu'aux administrateurs système, notamment :
Les environnements informatiques des entreprises d'aujourd'hui sont complexes et fortement décentralisés. La messagerie facilite l'intégration des applications et des services sur diverses plateformes en fournissant un réseau principal de messagerie partagé unique, robuste et sécurisé. Cela protège contre la perte de données et assure que les systèmes continueront à fonctionner même si la connectivité est instable.
Les files d'attente de messages sont particulièrement adaptées à l'intégration de systèmes dorsaux sur site à des services cloud. Dans les architectures cloud, les applications sont souvent réparties en petits composants indépendants. Cela simplifie leur conception et leur codage, et permet aussi de gérer leurs performances plus facilement. Les files d'attente de messages permettent à ces applications cloud découplées de communiquer entre elles ou avec les systèmes locaux.
La mise en file d'attente des messages augmente la résilience de l'architecture car les messages peuvent être persistants. Cela signifie qu'ils sont stockés sur disque jusqu'à ce que le service de réception du message en confirme le traitement. Les files d'attente de messages peuvent être utilisées dans des scénarios qui exigent un haut niveau de sécurité, de tolérance aux pannes et d'exactitude, comme le traitement des transactions financières, la réservation de vols ou la mise à jour des dossiers médicaux des patients.
Elles peuvent également être utilisées pour permettre aux applications et aux systèmes résidant dans différents clouds (qu'ils soient publics ou privés) de communiquer, même s'ils se trouvent dans des pays ou sur des continents différents. L'utilisation d'une file d'attente de messages augmente la tolérance aux pannes et peut être utilisée pour éviter que les données ne soient dupliquées ou perdues dans des systèmes géographiquement et techniquement disparates. Comme chaque service au sein du système est découplé, ou logiquement séparé des autres, chacun peut continuer à fonctionner si d'autres services ou applications tombent en panne ou s'arrêtent.
Les files d'attente de messages fonctionnent sur des applications disparates telles que les terminaux mobiles, l'Internet des objets et les enregistrements de systèmes de transactions traditionnels. Ils prennent également en charge des plateformes variées (machines virtuelles et conteneurs) et peuvent permettre l'intégration entre les applications existantes et les solutions les plus récentes.
File d'attente de messages et pub/sub
Les files d'attente de messages utilisent un modèle de messagerie point à point, dans lequel une application (appelée l'expéditeur) soumet un message à la file d'attente et une autre application (appelée le destinataire) reçoit le message de la file d'attente et le consomme. L'expéditeur et le consommateur doivent être étroitement liés l'un à l'autre et chaque message ne doit être consommé qu'une seule fois.
Si vos applications nécessitent que les messages soient distribués à plusieurs parties, il est possible d'utiliser plusieurs files d'attente de messages combinées, ou un modèle de messagerie publication/abonnement (pub/sub).
Dans la messagerie pub/sub, l'application qui produit le message est appelée éditeur et les applications qui le consomment sont les abonnés. Chaque message est publié sur un thème, et chaque application qui s'abonne à ce thème reçoit une copie de tous les messages publiés sur ce thème.
La plupart des solutions de middleware de messagerie prennent en charge à la fois les modèles de file d'attente de messages (point-à-point) et les modèles de messagerie pub/sub.
File d'attente de messages et bus de messages
Un bus de messages (un type de bus de service d'entreprise) permet aux services d'avoir un accès omniprésent aux données tout en garantissant qu'ils restent découplés et indépendants au sein d'une architecture système distribuée. Lorsque vous utilisez un bus de messages, tous les services ou applications doivent partager des types de données, un ensemble de commandes et des protocoles de communication communs (bien qu'ils puissent être écrits dans des langages différents). Les consommateurs peuvent déterminer la manière dont ils utilisent les messages.
Si des applications découplées doivent communiquer via un bus de messages, les messages doivent être transformés pour être tous du même type. En revanche, les files d'attente de message transportent les messages, qu'ils soient de types identiques ou différents.
File d'attente de messages et services Web
Les applications peuvent communiquer directement via les services Web ou des API basées sur des protocoles standards, comme le protocole SOAP (« Simple Object Access Protocol ») ou le protocole HTTP, plutôt que via un middleware de messagerie. Les services web sont largement utilisés dans les systèmes distribués, ils sont relativement simples et faciles à mettre en œuvre, ce qui fait d'eux une alternative intéressante aux files d'attente de messages dans certains cas d'utilisation et scénarios.
Cependant, à la différence des files d'attente de messages, les services Web ne peuvent pas garantir la livraison du message. Si le serveur fait défaut ou si la connexion échoue, vous devez faire en sorte que le client soit en mesure de gérer l'erreur. De plus, les services web ne disposent pas de modèles de distribution pub/sub. Le middleware de messagerie offre une plus grande tolérance aux pannes et une meilleure capacité à gérer un trafic important ou des rafales d'activités.
Pour savoir quand utiliser les API, quand utiliser la messagerie ou quand utiliser les deux, voir « Une introduction aux API et à la messagerie ».
File d'attente de messages et bases de données
Les bases de données peuvent être utilisées comme alternative aux files d'attente de messages dans certaines situations, mais la plupart des temps elles servent à des fins différentes et ne sont pas facilement interchangeables. Les bases de données sont le plus couramment utilisées pour l'archivage, et elles permettent d'accéder aux mêmes informations encore et encore. Les files d'attente de messages ne peuvent pas être utilisées à des fins d'archivage. Une fois qu'un message a été consommé, il est supprimé de la file d'attente.
Il est possible de concevoir une fonctionnalité de type file d'attente de messages dans une base de données, mais cela demande de grandes connaissances et de gros efforts de codage. Les bases de données ne peuvent être utilisées que pour reproduire des structures de file d'attente simples et ne sont pas extensibles pour des applications plus importantes.
Découvrez « Un bref aperçu du paysage des bases de données » pour plus d'informations sur les bases de données et sur leurs capacités.
La mise en file d'attente de messages est traditionnellement gérée par des équipes dédiées au sein du service informatique. Mais la livraison « en tant que service », en utilisant une file d'attente de messages hébergée dans le cloud, peut permettre aux individus ou aux utilisateurs de la ligne de métier (LOB) de demander des changements à l'infrastructure de messagerie de leur propre chef, par le biais d'un portail, ce qui peut accroître l'agilité.
La file d'attente de messages en tant que service fonctionne naturellement bien dans les architectures sans serveur ou de microservices courantes dans le développement cloud natif. Parce qu'il est proposé dans un modèle de service hébergé dans le cloud, le fournisseur de cloud gère l'ensemble de la mise à disposition, de l'installation et de la maintenance de votre infrastructure de messagerie, et celle-ci est hébergée dans le cloud.
Ces tutoriels vous aideront si vous débutez dans le développement d'applications qui communiquent via IBM MQ :
Ces ressources supplémentaires vous apporteront un aperçu plus complet :
IBM Cloud Pak for Integration combine l'automatisation de l'IA et un ensemble complet d'outils d'intégration pour connecter les applications et les données dans n'importe quel environnement cloud ou sur site.
Découvrez comment les solutions cloud hybrides créées avec IBM Cloud peuvent aider votre organisation à migrer vers le cloud, à moderniser les applications existantes et à créer de nouvelles applications cloud natives.
Un middleware accélère le développement des applications distribuées en simplifiant la connectivité entre les applications, les composants d'application et les sources de données back-end.
Les API REST constituent un moyen souple et léger d'intégrer des applications et sont devenues la méthode la plus courante pour connecter des composants dans les architectures de microservices.
Apprenez quand utiliser les API, quand utiliser la messagerie, ou quand utiliser les deux.