Modèles de messagerie
La nature distribuée des applications cloud nécessite une infrastructure de messagerie qui connecte les composants et les services, dans l’idéal, d’une manière faiblement couplée afin d’optimiser l’extensibilité. La messagerie asynchrone est largement utilisée et offre de nombreux avantages, mais elle apporte également des défis, tels que le classement des messages, la gestion des messages incohérents, l’idempotence et bien plus encore.
Modèle | Résumé |
---|---|
Demande-réponse asynchrone | Découplez le traitement de back-end à partir d’un hôte front-end, où le traitement de back-end doit être asynchrone, mais le front-end a quand même besoin d’une réponse claire. |
Vérification des revendications | Diviser un message volumineux en une vérification des revendications et une charge utile pour éviter de surcharger un bus de messages. |
Chorégraphie | Faites participer chaque composant du système au processus décisionnel concernant le flux de travail d’une transaction, au lieu de s’appuyer sur un point de contrôle central. |
Consommateurs concurrents | Ce modèle vise à permettre à plusieurs consommateurs concurrents de traiter les messages reçus sur un même canal de messagerie. |
Canaux et filtres | Divisez une tâche qui exécute un traitement complexe en une série d’éléments séparés qui peuvent être réutilisés. |
File d’attente de priorité | Classez par ordre de priorité les requêtes envoyées aux services, de telle sorte que les demandes ayant une priorité plus élevée soient reçues et traitées plus rapidement que celles de moindre priorité. |
Éditeur-abonné | Activez une application pour annoncer des événements à plusieurs consommateurs intéressés de manière asynchrone, sans coupler les expéditeurs aux destinataires. |
Nivellement de la charge basé sur une file d’attente | Utilisez une file d’attente qui agit comme mémoire tampon entre une tâche et un service qu’elle appelle, afin d’atténuer les surcharges intermittentes. |
Saga | Gérez la cohérence des données entre les microservices dans des scénarios de transactions distribuées. Un saga est une séquence de transactions qui met à jour chaque service et publie un message ou un événement pour déclencher l’étape suivante de la transaction. |
Superviseur de l’agent du planificateur | Coordonnez un ensemble d’actions sur un ensemble distribué de services et d’autres ressources à distance. |
Convoi séquentiel | Traitez un ensemble de messages connexes dans un ordre défini, sans bloquer le traitement d’autres groupes de messages. |