Avec le développement rapide d'Internet et l'évolution constante des besoins des utilisateurs, de plus en plus d'entreprises commencent à appliquer une architecture de microservices pour créer des systèmes centrés sur les besoins des utilisateurs, et Spring Cloud est un cadre de microservices léger et efficace qui a été largement salué. . Cependant, lors de la création d'applications de microservices, vous devez également prendre en compte la résilience et les mécanismes de basculement de la conception. Cet article abordera l'application de la conception élastique et du basculement dans l'architecture de microservice Spring Cloud.
1. Conception élastique
Dans l'architecture des microservices, la disponibilité et la stabilité du service sont cruciales. Afin de garantir la fiabilité du service, nous devons concevoir le service de manière élastique. La conception élastique comprend principalement les aspects suivants :
Dans Spring Cloud, la conception tolérante aux pannes des services est principalement réalisée grâce à des disjoncteurs. Le disjoncteur surveille l'état du service et passe automatiquement au service de secours lorsque le service tombe en panne ou expire. Lorsque vous utilisez un disjoncteur, vous devez faire attention aux aspects suivants :
(1) Définir le délai d'attente : Lorsque vous appelez le service, vous devez définir un délai d'attente raisonnable. Si le service ne peut pas renvoyer de résultats dans le délai spécifié, le disjoncteur se déclenchera et passera automatiquement au service de sauvegarde.
(2) Définir les paramètres de nouvelle tentative : si l'appel de service échoue, vous pouvez laisser le service réessayer plusieurs fois en définissant le nombre de tentatives et les paramètres de temps de nouvelle tentative.
(3) Définir les paramètres du fusible : lorsque le taux de défaillance du service dépasse un certain seuil, le disjoncteur activera le fusible et cessera d'appeler le service jusqu'à ce que le service s'améliore ou dépasse une certaine période de temps avant d'essayer d'appeler à nouveau.
Dans les microservices, certaines requêtes hautement concurrentes peuvent provoquer le crash du service. Afin d'éviter cette situation, une stratégie de limitation de courant doit être conçue pour le service. Dans Spring Cloud, nous pouvons limiter le trafic via l'algorithme de compartiment de jetons ou l'algorithme de compartiment d'entonnoir.
Dans des situations de forte concurrence, afin de garantir la disponibilité des services de base, vous pouvez rétrograder les services pour assurer le fonctionnement normal du système. Dans le même temps, vous devez prêter attention aux aspects suivants lors du processus de rétrogradation du service :
(1) Conservez autant que possible les fonctions nécessaires pour éviter que le service ne fonctionne pas correctement.
(2) Créez une page de rétrogradation afin que les utilisateurs puissent savoir à temps que le service est en cours de rétrogradation afin d'éviter une panique et des malentendus inutiles.
2. Basculement
En plus de la conception élastique, le basculement est également un élément indispensable de la création d'applications de microservices. Dans Spring Cloud, nous pouvons implémenter le basculement des deux manières suivantes :
Ribbon est un composant d'équilibrage de charge dans Spring Cloud, qui peut détecter la disponibilité des services et distribuer les demandes selon certaines règles à différents nœuds de service. Lorsque vous utilisez Ribbon, vous devez faire attention aux aspects suivants :
(1) Définissez le délai d'expiration de la demande. Lorsque la demande expire, Ribbon transmettra automatiquement la demande à d'autres services disponibles.
(2) Définissez le bilan de santé du service, Ribbon détectera automatiquement la disponibilité du service et transmettra la demande au service disponible.
Hystrix est un composant de disjoncteur dans Spring Cloud. Il peut surveiller automatiquement tous les services appelés via celui-ci et basculer automatiquement vers le service de sauvegarde en cas de panne du service. Lorsque vous utilisez Hystrix, vous devez faire attention aux aspects suivants :
(1) Définir le seuil du disjoncteur Lorsque le taux de défaillance dépasse un certain seuil, le disjoncteur passe automatiquement au service de secours.
(2) Définissez le délai d'expiration du service. Si le service ne peut pas renvoyer de résultats dans le délai spécifié, le disjoncteur passera automatiquement au service de sauvegarde.
Conclusion
La conception élastique et le basculement font également partie intégrante de la création d'applications de microservices. Ils peuvent garantir la disponibilité et la stabilité des microservices, offrant ainsi aux utilisateurs une meilleure expérience de service. Dans Spring Cloud, nous pouvons utiliser des composants tels que des disjoncteurs, la limitation de courant, la dégradation, Ribbon et Hystrix pour obtenir une conception et un basculement élastiques. Dans le même temps, lors de l’utilisation de ces composants, vous devez faire attention au réglage de certains paramètres clés pour garantir le bon fonctionnement du service.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!