Fermer

octobre 26, 2022

Introduction aux microservices pilotés par les événements

Introduction aux microservices pilotés par les événements


Dans le monde du développement logiciel, l’architecture des microservices est l’un des sujets les plus fréquemment abordés. Vous apprendrez quoi Microservices sont dans ce blog.

Qu’est-ce qu’un microservice ?

De nombreux Logiciel à grande échelle Projets Employer l’approche architecturale dite Système de microservices. L’efficacité, la fiabilité, les performances et l’évolutivité doivent être augmentées.

Une seule application peut être développée en utilisant le style architectural de microservice comme Collection de petits servicesdont chacun s’exécute dans son propre processus et Communiquer avec d’autres services à l’aide d’outils simples, souvent API de ressource HTTP. Ces services ont été créés en tenant compte des capacités commerciales et peuvent être déployés indépendamment à l’aide d’un équipement de déploiement entièrement automatisé.

Simple à déployer : Vous pouvez télécharger un seul fichier, tel qu’un fichier WAR dans une application Java, pour déployer le système complet. Microservice vs application monolithique

Simple à utiliser : Cliquez simplement sur le bouton Exécuter dans votre IDE pour commencer à exécuter les tests.

Simple à développer : Vous pouvez utiliser un éditeur de texte ou un environnement de développement intégré (IDE) pour ouvrir le projet complet.

microservices

Figure 1: Différences d’architecture entre les applications monolithiques traditionnelles et les microservices

Image reproduite avec l’aimable autorisation de BMC.

Différence entre l’application monolithique et les microservices

microservices

Sur le côté gauche, nous avons un Application monolithique qui peut être une seule application Springwood avec Classe de contrôleurs multiples. Tous les contrôleurs sont dans une seule application Springwood et si vous apportez des modifications à l’un de ces contrôleurs. Nous devrons reconstruire et Déployer la Application complète dans le serveur.

Dans Microservices Nous avons Plusieurs petits services Web plutôt qu’un grand service Web monolithique. Ces services Web sont beaucoup plus petits et les services individuels sont responsables d’une capacité commerciale. Ces services peuvent également être implémentés dans différents langages de programmation et peuvent être Hébergé sur Différentes plateformes ou serveurs.

Par exemple, Webservice utilisateur peut être implémenté avec du code JavaScript et Spring MVC.

La Service Web d’adresse peut également être un JavaScript et un Spring MVC.

Tandis que le Services en ligne de produits peut être implémenté avec Jersey 2, JAX-RS.

Service Web de recherche peut être implémenté avec PHP.

Dans un cas, il s’agit d’un grand service Web construit comme une seule application monolithique et dans l’autre cas, il s’agit d’un ensemble de services Web reposants à petit grain fin et déployables indépendamment.

Des microservices distincts peuvent être mis en œuvre avec différentes technologies et déployés indépendamment et exécutés sur différents serveurs.

Microservices Communiquer les uns avec les autres avec l’aide de Requêtes HTTP.

Un microservice décompose une application monolithique en petits morceaux et chaque service Web est déployé séparément.

Supposons que vous ayez commencé à créer un projet sur une seule application monolithique. Avec le temps, la fonctionnalité de l’application grandira. Il deviendra très volumineux et l’équipe décidera de scinder cette grande application monolithique en microservices plus petits.

Photo15

Lorsque l’application est divisée en plusieurs services Micro Chaque le micro service aura son Propre base de données. On l’appelle Modèle de conception de base de données par service.

Les informations sur les produits seront dans la base de données des produits et les informations sur l’utilisateur seront dans la base de données des utilisateurs.

Les microservices n’ont pas accès pour obtenir des informations de l’autre base de données.

Si nécessaire, le micro-service peut également être étendu. Par exemple, si Charger sur une micro augmentation de service, vous pouvez Créer plusieurs instances de celui-ci sur le même serveur et ce sera un autre modèle de conception de microservice qui est Plusieurs instances de service pour l’hôte.

Vous pouvez démarrer autant d’instances que possible de microservices de produit nécessaires, car chaque instance de microservice de produit démarre sur le numéro de port réel et ils n’entrent pas en conflit les uns avec les autres, même lorsqu’ils s’exécutent sur le même serveur.

L’application n’a pas besoin de connaître l’emplacement de tous les microservices. Il lui suffit de connaître l’adresse de notre Passerelle API et la passerelle API seront alors Itinéraire la requête HTTP au Destination micro-services.

La Service Découverte Eurêka est comme un carnet d’adresses de tous les microservices en cours d’exécution et API Gateway apprendra l’emplacement des microservices de destination à partir du serveur de découverte.

Si plusieurs instances de microservices sont en cours d’exécution, la passerelle API Équilibre égal Requête HTTP entre ces instances en cours d’exécution. Nous pouvons également utiliser Équilibreur de charge applications qui peuvent être utilisées avec la passerelle API pour charger de manière égale la requête HTTP entre les instances en cours d’exécution du micro service. Vous pouvez en savoir plus sur l’équilibrage de charge avec ceci lien.

Photo16

Imaginez un scénario où nous avons un Microservice A qui doit communiquer avec Plusieurs d’autres micro-services en même temps. La communication directe de demande et de réponse n’est plus pratique dans ce cas. Dans ce genre de situation, on peut utiliser Architecture pilotée par les pairs. Le microservice A qui doit communiquer avec plusieurs autres microservices Publier un message au courtier de messages. Les microservices qui souhaitent recevoir ce message consommeront ce message de Courtier de messages dès qu’il y sera disponible.

Dans une architecture pilotée par Even, si l’un des microservices est en panne, il pourra toujours consommer l’événement lorsqu’il sera en ligne, et cela est dû au fait qu’un message d’événement est conservé dans le message Broker. Lorsque le microservice souscrit revient en ligne, il consomme le message qu’il a manqué.

Automatisation des microservices

Le déploiement manuel d’une application monolithique, la création de quelques instances cloud pour l’héberger ou l’installation de logiciels sur ces instances peuvent être gérables. Cependant, faire évoluer cela jusqu’à 100 déploiements ou 1 000 instances est inutile. L’automatisation du déploiement, du provisionnement et de la gestion de la configuration est essentielle pour les microservices. Tout projet de microservice doit utiliser l’intégration ou la livraison continue. Sur ce, Martin Fowler a de très bonnes informations.

Toutes nos félicitations

Conclusion: Félicitations, vous comprenez maintenant ce que sont les microservices et comment peuvent-ils nous faciliter la vie. Vous connaissez également l’utilisation d’API Gateway et de Load Balancer.

Joyeux codage

Bon codage !






Source link