Qu'est-ce que la messagerie Pub/Sub ?
La messagerie Publier/S'abonner, ou messagerie Pub/Sub, est un modèle de communication asynchrone qui permet aux développeurs de créer facilement des applications hautement fonctionnelles et architecturalement complexes dans le cloud. Dans l'architecture cloud moderne, les applications sont découplées en de plus petits composants indépendants appelés services. La messagerie Pub/Sub fournit des notifications d'événements instantanées pour ces systèmes distribués. Elle prend en charge une communication évolutive et fiable entre des modules logiciels indépendants.
Comment fonctionne la messagerie Pub/Sub ?
Le système Publier/S'abonner (Pub/Sub) comporte quatre composants clés.
Messages
Un message se compose de données de communication envoyées par un expéditeur à un destinataire. Les types de données de messages vont des chaînes aux objets complexes représentant du texte, du contenu vidéo, audio, des données de capteur ou autre contenu numérique.
Rubriques
Chaque message est associé à une rubrique. La rubrique joue le rôle de canal intermédiaire entre les expéditeurs et les destinataires. Elle maintient une liste de destinataires intéressés par les messages de cette rubrique.
Abonnés
Un abonné est le destinataire du message. Les abonnés doivent s'enregistrer (ou s'abonner) auprès des rubriques qui les intéressent. Ils peuvent réaliser différentes fonctions, ou faire quelque chose de différent avec le message en parallèle.
Éditeurs
L'éditeur est le composant qui envoie les messages. Il crée des messages relatifs à une rubrique et les envoie une fois seulement à tous les abonnés de cette rubrique. Cette interaction entre l'éditeur et les abonnés est une relation de type « un à plusieurs ». L'éditeur n'a pas besoin de savoir qui utilise l'information qu'il diffuse et les abonnés n'ont pas besoin de savoir d'où provient le message.
Quelles sont les fonctionnalités d'un système de messagerie Pub/Sub ?
Les applications développées au moyen d'un modèle Publier/S'abonner (Pub/Sub) ont une logique d'application et de communication séparée. L'infrastructure de messagerie découple la diffusion des messages entre les éditeurs et les abonnés et diffuse de manière asynchrone auprès d'abonnés différents.
Le système de communication Pub/Sub présente les fonctionnalités clés suivantes.
Diffusion en mode Push
La messagerie Pub/Sub envoie instantanément en mode Push les notifications d'événements asynchrones lorsque des messages sont publiés dans la rubrique de messages. Les abonnés reçoivent une notification lorsqu'un message est disponible.
Plusieurs protocoles de diffusion
Les rubriques se connectent à plusieurs types de points de terminaison, tels que des files d'attente de messages, des fonctions sans serveur, des serveurs HTTP et des adresses e-mail.
En savoir plus sur la mise en file d'attente des messages avec AWS »
Distribution
Ce scénario se produit lorsqu'un message est envoyé à une rubrique puis répliqué et transmis à plusieurs points de terminaison. La distribution fournit des notifications d'événements asynchrones, qui permettent à leur tour un traitement en parallèle.
Filtrage
La fonctionnalité de filtrage permet à l'abonné de créer une politique de filtrage des messages. Ainsi, l'abonné reçoit uniquement les notifications qui l'intéressent et non chaque message publié dans la rubrique.
Multiplexage
Dans certains cas, les éditeurs sont aussi des abonnés. Vous pouvez multiplexer les flux de messages et créer des systèmes qui se relient de façon cohérente en interne.
Quels sont les avantages de la messagerie Pub/Sub ?
Le modèle Publier/S'abonner (Pub/Sub) favorise l'architecture basée sur les événements, requise dans plusieurs applications modernes. Vous pouvez utiliser des événements pour déclencher la communication entre des services découplés. Un événement est un changement d'état ou une mise à jour, comme l'ajout d'un article au panier.
La messagerie Pub/Sub fournit des avantages considérables aux développeurs qui construisent des applications qui dépendent des évènements en temps réel. Nous présentons ci-dessous quelques-uns de ces avantages.
Élimination de l'attente active
Les rubriques de messages permettent une diffusion instantanée, basée sur la technologie Push, et éliminent le besoin pour les consommateurs de messages de vérifier régulièrement, ou d'attendre activement, l'arrivée de nouvelles informations et mises à jour. Cela permet d'accélérer le temps de réponse et de réduire la latence de diffusion, qui peut être particulièrement problématique dans les systèmes où les retards ne sont pas tolérés.
Ciblage dynamique
Le modèle Pub/Sub facilite la découverte de services, la rend plus naturelle et moins sujette aux erreurs. Au lieu de maintenir une liste de pairs afin qu'une application puisse envoyer des messages, un éditeur publiera simplement des messages dans une rubrique. Ensuite, un parti intéressé abonnera son point de terminaison à la rubrique et commencera à recevoir ces messages. Plusieurs abonnés peuvent apporter des modifications, mettre à niveau ou disparaître, et le système se réglera de manière dynamique.
Découplage et mise à l'échelle indépendants
Le modèle Pub/Sub rend le logiciel plus flexible. Les éditeurs et les abonnés sont découplés et travaillent de manière indépendante. Ainsi, vous pouvez les développer et les mettre à l'échelle séparément. Vous pouvez choisir de traiter les commandes d'une certaine manière ce mois-ci, puis procéder autrement le mois suivant. L'ajout ou la modification de fonctionnalités n'aura pas d'effet domino sur le système, car le modèle Pub/Sub vous permet de flexibiliser l'ensemble du fonctionnement.
Simplification des communications
Le code dédié aux communications et à l'intégration est l'un des codes les plus complexes à rédiger. Le modèle Publier/S'abonner réduit cette complexité en remplaçant toutes les connexions point à point par une seule connexion à une rubrique de messages. La rubrique gérera les abonnements afin de décider quels messages devront être envoyés à quels points de terminaison. La diminution des rappels engendre un couplage faible, ainsi qu'une simplification du maintien et de l'extension du code.
Durabilité
Les services de messagerie Pub/Sub offrent souvent une durabilité très élevée et livrent les messages au moins une fois, en stockant des copies du même message sur plusieurs serveurs.
Sécurité
Les rubriques de messages authentifient les applications qui tentent de publier du contenu et vous permettent d'utiliser des points de terminaison chiffrés pour sécuriser les messages en transit sur le réseau.
Quels sont les cas d'utilisation de la messagerie Pub/Sub ?
Nous présentons ci-dessous des cas d'utilisation répandus du système de messagerie Publier/S'abonner (Pub/Sub).
Traitement asynchrone en parallèle
Les événements publiés dans une rubrique de messages peuvent déclencher la réalisation simultanée de tâches nécessaires, mais sans lien, par les exécuteurs.
Diffusion d'alertes d'application et de système
Diffusez instantanément des mises à jour essentielles et des notifications d'événements asynchrones aux composants d'application affectés et à vos utilisateurs.
Gestion des flux de travail asynchrones
Transmettez des événements dans des applications, déplacez des données entre des magasins de données, actualisez les caches distribués ou mettez à jour des enregistrements de systèmes métier.
Équilibrage des charges de travail
Regroupez les tâches pour le traitement par lots ou divisez une plus grande tâche en tâches plus petites et utilisez la mise en file d'attente des messages afin de répartir le travail entre plusieurs exécuteurs.
Connexion à plusieurs systèmes
Enregistrez les événements pour une analyse ultérieure, capturez les journaux pour le fonctionnement et la sécurité ou archivez afin de respecter les exigences de sauvegarde ou de conformité.
Distribution pour la réplication
Répliquez les données entre les environnements de production et de développement ou développez et testez avec des données en direct.
Coordination d'applications sans serveur
Distribuez les notifications d'événements asynchrones aux fonctions distribuées et aux files d'attente de messages afin de coordonner les composants de votre application sans serveur.
Diffusion de données IoT
Le modèle Pub/Sub est un puissant moyen d'interaction pour les appareils Internet des objets (IoT). Les appareils peuvent facilement diffuser des données aux systèmes back-end ou entre eux.
Quelle est la différence entre les files d'attente de messages et la messagerie Pub/Sub ?
Une file d'attente de messages est une autre forme de communication asynchrone utilisée dans les architectures sans serveur et de microservices. Les messages sont stockés dans la file d'attente jusqu'à ce qu'ils soient traités et supprimés. Les files d'attente de messages nécessitent que l'expéditeur connaisse l'identité du destinataire. Le classement des messages peut également entraîner des goulots d'étranglement dans le système.
À l'inverse, le modèle Publier/S'abonner (Pub/Sub) offre plus de flexibilité. Plusieurs abonnés intéressés peuvent recevoir des messages simultanément et de manière asynchrone. Les éditeurs n'ont pas besoin de connaître l'identité des abonnés. Le traitement des messages est plus évolutif et plus fiable et offre de meilleures performances.
Comment AWS peut-il prendre en charge vos besoins en matière de messagerie Pub/Sub ?
Amazon Web Services (AWS) propose deux services que vous pouvez utiliser pour différentes applications Publier/S'abonner (Pub/Sub).
API Pub/Sub
AWS AppSync est un service entièrement géré permettant de créer des API GraphQL sans serveur et des API Pub/Sub qui simplifient le développement d'applications. Vous pouvez créer un point de terminaison unique pour interroger, mettre à jour ou publier des données en toute sécurité.
Les API Pub/Sub conçues avec AWS AppSync vous permettent de publier des mises à jour de données en temps réel auprès des clients d'API abonnés au moyen de connexions WebSocket sans serveur. Vous pouvez créer des expériences en temps réel attrayantes pour un ensemble de cas d'utilisation. Par exemple, vous pouvez diffuser des résultats de matchs à jour, des données financières, des informations sur la participation du public ou le vote, ou des fonctionnalités géolocalisées comme des cartes et le marketing par notifications Push.
Voici ce que vous pouvez accomplir grâce à AWS AppSync :
- Accéder aux données d'une ou plusieurs sources ou microservices avec une seule requête réseau
- Interagir avec les données et les mettre à jour, même hors ligne, grâce à la synchronisation des données hors ligne, la gestion des versions et la résolution des conflits
- Payer uniquement les requêtes adressées à votre API et les messages en temps réel livrés aux clients connectés
Messagerie Pub/Sub
Amazon Simple Notification Service (SNS) facilite la création d'une application à l'aide du modèle de messagerie Pub/Sub. Vous pouvez envoyer des messages depuis vos applications aux clients ou à d'autres applications de manière évolutive et rentable.
Amazon SNS propose plusieurs fonctionnalités :
- Messagerie à haut débit, basée sur un système Push, entre des systèmes distribués, des microservices et des applications sans serveur basées sur les événement
- Chiffrement des messages et confidentialité du trafic
- Capacités de distribution entre les catégories AWS, telles que l'analyse, le calcul, les conteneurs, les bases de données, l'Internet des objets (IoT), le machine learning (ML), la sécurité et le stockage
Démarrez avec le modèle Pub/Sub sur AWS en créant un compte AWS gratuit dès aujourd'hui.