SpringCloud-Fuse Hystrix (1)

1. Fusible Hystrix

1.1 Introduction

Hystrix signifie porc-épic en anglais. Son logo est un porc-épic dans l'image ci-dessous. C'est un groupe qui fournit des mécanismes de protection dans le système de microservices.
Le logiciel , comme eureka , est également développé par la société netflflix .
Page d'accueil: https://github.com/Netflflix/Hystrix/

Alors, quel est le rôle d' Hystrix ? Que devons-nous protéger?
Hystrix est une bibliothèque ouverte aux délais et tolérante aux pannes provenant de Netflflix , utilisée pour isoler l'accès aux services distants et aux bibliothèques tierces afin d'éviter les pannes en cascade .
 

2.2. Problème d'avalanche

Dans les microservices, la relation d'appel entre les services est complexe et compliquée. Une demande peut nécessiter d'appeler plusieurs interfaces de microservices à implémenter, ce qui formera une chaîne d'appels très complexe.
route:

Comme le montre la figure, une demande commerciale doit appeler quatre services A , P , H , I , et ces quatre services peuvent appeler d'autres services.
Si à ce moment, un service est anormal:
Par exemple: micro-services Je demande une obstruction anormale, les demandes des utilisateurs n'obtiendront pas de réponse, le matou de ce fil ne libère pas, donc de plus en plus
Lorsque les demandes des utilisateurs arrivent, de plus en plus de threads bloquent:

 

      Le nombre de threads et la concurrence pris en charge par le serveur sont limités et la demande est toujours bloquée, ce qui entraînera l'épuisement des ressources du serveur, ce qui entraînera l'indisponibilité de tous les autres services, entraînant un effet d'avalanche. C'est comme une ligne de production automobile qui produit différentes voitures et a besoin de différentes pièces. Si une pièce ne peut pas être utilisée pour diverses raisons, la voiture entière sera incapable de s'assembler et tombera dans un état d'attente pour les pièces jusqu'à ce que les pièces soient en place Continuez à assembler.   À ce stade, s'il existe de nombreux modèles qui nécessitent cette pièce, toute l'usine sera en état d'attente, provoquant la paralysie de toute la production. La portée d'une pièce est en constante expansion.
La solution d' Hystrix au problème d'avalanche est principalement la dégradation du service, notamment:

              Isolation des fils

              Service de fusion

3.3. Isolation des threads et dégradation du service

3.3.1. Principe

Schéma de principe de l'isolation des fils:
Interprétation:
        Hystrix alloue un petit pool de threads pour chaque appel de service dépendant. Si le pool de threads est plein, l'appel sera rejeté immédiatement. Par défaut, la mise en file d'attente n'est pas utilisée pour accélérer le temps de détermination des échecs . La demande de l'utilisateur n'accédera plus directement au service, mais via des threads inactifs dans le pool pour accéder au service, si le pool de threads est plein ou demande au fil du temps , il sera rétrogradé, qu'est-ce que la dégradation du service?
Dégradation du service: la priorité est donnée à la garantie que les services de base ne sont pas disponibles ou faiblement disponibles.
        Lorsque la demande de l'utilisateur échoue, elle ne sera pas bloquée, elle n'attendra pas indéfiniment ou ne verra pas le plantage du système, au moins un résultat d'exécution (tel que le retour d'un message d'invite convivial) peut être vu.
        Bien que cela conduise à l'échec de la demande de dégradation du service, mais ne provoque pas d'obstruction, mais que la plupart affectera les ressources du pool de threads des services dépendants correspondants, l'autre service de service ne répond pas.
Conditions qui déclenchent le déclassement des services Hystrix :
       Le pool de threads est plein
       La demande a expiré
 

Je suppose que tu aimes

Origine blog.csdn.net/SSbandianH/article/details/109442979
conseillé
Classement