Cinq composants majeurs de springcloud : 1. Eureka implémente la gouvernance des services ; 2. Ribbon fournit principalement des algorithmes d'équilibrage de charge logiciel côté client 3. Disjoncteur Hystrix, système de protection, contrôle la portée des défauts ; passerelle, routage, équilibrage de charge et autres fonctions ; 5. Gestion de la configuration.
L'environnement d'exploitation de cet article : système Windows10, Spring Cloud 2.4.x, ordinateur Thinkpad T480.
Cinq composants majeurs de springcloud :
1.Eureka
Fonction : pour mettre en œuvre la gouvernance des services (enregistrement et découverte des services)
Introduction : Spring Cloud Eureka est le module de gouvernance des services du projet Spring Cloud Netflix.
se compose de deux composants : le serveur Eureka et le client Eureka.
Le serveur Eureka est utilisé comme centre d'enregistrement de services. Prise en charge du déploiement de clusters.
Le client Eureka est un client Java utilisé pour gérer l'enregistrement et la découverte des services.
Lorsque l'application démarre, le client Eureka enregistre ses propres informations de service auprès du serveur et met en cache les informations de service du serveur localement. Le client effectuera périodiquement des interactions avec le serveur pour mettre à jour les baux de service et les informations de service.
2. Ruban
Fonction : Ruban, fournit principalement un algorithme d'équilibrage de charge logiciel côté client.
Introduction : Spring Cloud Ribbon est un outil d'équilibrage de charge côté client basé sur HTTP et TCP, qui est implémenté sur la base de Netflix Ribbon. Grâce à l'encapsulation de Spring Cloud, nous pouvons facilement convertir automatiquement les demandes de modèles REST orientées service en appels de service à charge équilibrée côté client.
Regardez l'image ci-dessus. Le point clé est de convertir les appels REST externes en appels de microservice selon la stratégie d'équilibrage de charge. Ribbon dispose de nombreuses stratégies d'équilibrage de charge, qui seront expliquées plus tard.
3. Hystrix
Fonction : disjoncteur, système de protection, portée de défaut de contrôle.
Introduction : Afin d'assurer sa haute disponibilité, un seul service est généralement déployé dans un cluster. Pour des raisons de réseau ou pour ses propres raisons, le service ne peut pas garantir une disponibilité à 100 %. S'il y a un problème avec un seul service, un blocage de thread se produira lors de l'appel de ce service. Les ressources de thread du conteneur Servlet seront consommées, provoquant une paralysie du service. En raison des dépendances entre les services, les pannes vont se propager et avoir des conséquences catastrophiques sur l'ensemble du système de microservices. C'est l'effet « avalanche » des pannes de services.
4. Zuul
Fonction : passerelle API, routage, équilibrage de charge et autres fonctions
Introduction : Semblable à nginx, fonction de proxy inverse, mais Netflix lui-même a ajouté certaines fonctionnalités pour coopérer avec d'autres composants.
Dans une architecture de microservices, les services back-end ne sont souvent pas directement ouverts à l'extrémité appelante, mais sont acheminés vers le service correspondant via une passerelle API basée sur l'URL demandée. Lorsqu'une passerelle API est ajoutée, un mur est créé entre l'appelant tiers et le fournisseur de services. Ce mur communique directement avec l'appelant pour le contrôle des autorisations, puis distribue les requêtes au serveur backend de manière équilibrée.
5. Config
Fonction : gestion de la configuration
Introduction : SpringCloud Config fournit un serveur et un client. L'implémentation par défaut du backend de stockage du serveur utilise git, elle prend donc facilement en charge une version balisée de l'environnement de configuration, tout en donnant accès à une variété d'outils de gestion de contenu.
Ceci est toujours statique et doit être combiné avec Spring Cloud Bus pour réaliser des mises à jour de configuration dynamiques.
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!