Maison  >  Article  >  Java  >  Quels sont les sept composants majeurs de Spring Cloud ?

Quels sont les sept composants majeurs de Spring Cloud ?

青灯夜游
青灯夜游original
2021-04-25 17:43:5222900parcourir

Spring Cloud comporte sept composants principaux : 1. Le composant Eureka, qui décrit comment le service est enregistré et où l'enregistrer ; 2. Le composant Ribbon 3. Le composant Feign, un client de service Web de déclaration ; composant ; 5. Composant de configuration ; 6. Composant Zuul 7. Composant de bus.

Quels sont les sept composants majeurs de Spring Cloud ?

L'environnement d'exploitation de ce tutoriel : système windows7, version java8, ordinateur DELL G3.

Composant Spring Cloud Family Bucket

Avant de présenter Spring Cloud Family Bucket, je dois d'abord présenter Netflix est une excellente entreprise In Spring It. joue un rôle important dans le projet Cloud. Netflix fournit de nombreux composants dont Eureka, Hystrix, Zuul, Archaius, etc., qui sont cruciaux dans l'architecture des microservices. Spring encapsule une série de composants basés sur Netflix, nommés : Spring Cloud Eureka, Spring. Cloud Hystrix, Spring Cloud Zuul, etc. Chaque composant est présenté ci-dessous :

(1) Spring Cloud Eureka

Nous utilisons des microservices L'essence des microservices est l'appel. de diverses interfaces API Alors, comment générons-nous ces interfaces et comment les appelons-nous après avoir généré ces interfaces ? Comment le gérer ?

La réponse est Spring Cloud Eureka. Nous pouvons enregistrer notre propre interface API définie sur Spring Cloud. Eureka est responsable de l'enregistrement et de la découverte du service. Si vous avez étudié Zookeeper, vous pouvez bien le comprendre. similaire à celui de Zookeeper, qui est l'enregistrement et la découverte des services. Les composants qui composent le système Eureka comprennent : le centre d'enregistrement des services, le fournisseur de services et le consommateur de services.

Quels sont les sept composants majeurs de Spring Cloud ?

L'image ci-dessus décrit (l'image vient d'Internet) :

1. Réplication maître-esclave du centre d'enregistrement de services composé de deux services Eureka. Cluster des centres d'enregistrement ;
2. Ensuite, le fournisseur de services enregistre, renouvelle, services hors ligne, etc. auprès du centre d'enregistrement
3. consommateur de services rend compte à  ; Eureka Le centre d'enregistrement extrait la liste des services et la maintient localement (c'est aussi l'incarnation du mécanisme du mode de découverte des clients !
4. Puis consommateur du service ); selon 🎜>Centre d'enregistrement des services Eureka Sélectionnez un fournisseur de services pour consommer les services dans la liste de services obtenue.

(2) Spring Cloud Ribbon

Spring Cloud Eureka décrit comment les services sont enregistrés, où ils sont enregistrés et comment les consommateurs de services obtiennent des services auprès des producteurs de services. Informations, mais Eureka entretient uniquement la relation entre les producteurs de services, les centres d'enregistrement et les consommateurs de services. Le véritable consommateur de services appelle les données fournies par le producteur de services via Spring Cloud Ribbon.

Il est mentionné en (1) que le consommateur de services obtient la liste de services du producteur de services auprès du centre d'enregistrement et la maintient localement. Cette méthode de découverte de clients permet au consommateur de services de choisir celui qui convient. Le nœud accède aux données fournies par le producteur de services. Ce processus de sélection du nœud approprié est complété par Spring Cloud Ribbon.

C'est de là que vient l'équilibreur de charge client Spring Cloud Ribbon.

(3) Spring Cloud Feign

Dans (1) et (2) ci-dessus, nous avons utilisé le moyen le plus simple pour réaliser la découverte d'enregistrement et l'invocation de service de le service.Opération, si vous utilisez spécifiquement Ribbon pour appeler des services, vous pouvez sentir que la façon d'utiliser Ribbon est encore un peu compliquée, c'est pourquoi Spring Cloud Feign a vu le jour.

Spring Cloud Feign est un client de service Web déclaratif, qui facilite l'écriture de clients de services Web. Utilisez Feign pour créer une interface et l'annoter. Il prend en charge les annotations enfichables, notamment les annotations Feign et les annotations JAX-RS, Feign également. prend en charge les encodeurs et décodeurs enfichables, Spring Cloud ajoute des annotations pour Spring MVC, Spring Web utilise HttpMessageConverters par défaut, Spring Cloud intègre Ribbon et le client HTTP à charge équilibrée Feign fourni par Eureka.

Cela peut être simplement compris comme suit : l'émergence de Spring Cloud Feign facilite l'utilisation d'Eureka et de Ribbon.

(4) Spring Cloud Hystrix

Nous avons appris à utiliser Eureka pour l'enregistrement et la découverte de services dans (1), (2) et (3) Utiliser le ruban. implémente des appels de services d'équilibrage de charge, et nous savons également que l'utilisation de Feign peut simplifier notre codage. Cependant, cela ne suffit pas pour parvenir à une architecture de microservices hautement disponible.

Par exemple : lorsqu'un service échoue et que l'appelant du service ne sait pas que le service est défectueux, si le nombre d'appels passés à ce moment continue d'augmenter, il finira par attendre l'échec du service. partie à créer une tâche en conséquence. L'arriéré a finalement conduit à la paralysie de ses propres services.

Spring Cloud Hystrix est conçu pour résoudre cette situation et empêcher l'accès continu à un service défectueux. La signification de Hystrix est : disjoncteur. Le disjoncteur lui-même est un dispositif de commutation utilisé pour la protection des circuits dans nos maisons afin d'éviter les surcharges de courant. Lorsqu'un appareil électrique de la ligne est court-circuité, le disjoncteur peut commuter l'appareil électrique défectueux. à temps pour éviter des conséquences graves telles qu'une surcharge, un échauffement ou même un incendie.

(5) Spring Cloud Config

Quand il n'y avait pas beaucoup de microservices, la configuration et la gestion des divers services étaient relativement simples, mais quand il y a des centaines ou des milliers de nœuds de microservices Quand Si cela se lève, la gestion de la configuration des services va devenir compliquée.

Dans un système distribué, en raison du grand nombre de services, afin de faciliter la gestion unifiée et la mise à jour en temps réel des fichiers de configuration des services, un composant de centre de configuration distribué est nécessaire. Dans Spring Cloud, il existe le composant du centre de configuration distribué Spring Cloud Config, qui prend en charge le placement du service de configuration dans la mémoire du service de configuration (c'est-à-dire local) et prend également en charge le placement dans le référentiel Git distant. Dans le composant Cpring Cloud Config, il existe deux rôles, l'un est Config Server et l'autre est Config Client.

Config Server est utilisé pour stocker les attributs de configuration. L'emplacement de stockage peut être un entrepôt Git, un entrepôt SVN, des fichiers locaux, etc. Config Client est utilisé pour lire les attributs du service.

Quels sont les sept composants majeurs de Spring Cloud ?

(6) Spring Cloud Zuul

Nous utilisons Eureka dans Spring Cloud Netflix pour mettre en œuvre le centre d'enregistrement des services et l'enregistrement des services et La découverte ; la consommation des services et l'équilibrage de charge sont implémentés via Ribbon ou Feign entre les services ; la configuration externe et la gestion des versions de plusieurs environnements d'application sont implémentées via Spring Cloud Config. Afin de rendre le cluster de services plus robuste, le mécanisme de fusion d'Hystrix est utilisé pour éviter la propagation des pannes causées par des exceptions dans des services individuels dans l'architecture des microservices.

Quels sont les sept composants majeurs de Spring Cloud ?

Parlons d'abord de certaines choses qui doivent être faites et des défauts d'une telle architecture :

1. Tout d'abord, elle détruit les apatrides. caractéristique du service. Afin d'assurer la sécurité des services externes, nous devons mettre en œuvre un contrôle des autorisations sur l'accès aux services. Le mécanisme de contrôle des autorisations des services ouverts pénétrera et polluera la logique métier de l'ensemble du service ouvert. détruira le service. Les caractéristiques sans état de l'API REST dans le cluster. Du point de vue du développement et des tests spécifiques, outre la prise en compte de la logique métier réelle pendant le travail, un traitement de contrôle supplémentaire et durable de l'accès à l'interface est également nécessaire.

2. Deuxièmement, les interfaces existantes ne peuvent pas être directement réutilisées. Lorsque nous devons accéder à des services externes à partir d'une interface d'accès au cluster existante, nous devons ajouter une logique de vérification à l'interface d'origine ou ajouter un appel proxy pour implémenter le contrôle des autorisations. Nous ne pouvons pas réutiliser directement l'interface d'origine.
Face à des problèmes comme ceux ci-dessus, comment devons-nous les résoudre ? Passons maintenant au sujet principal de cet article : Service Gateway !

Afin de résoudre les problèmes ci-dessus, nous devons extraire des éléments tels que le contrôle des autorisations de nos unités de service, et l'endroit le plus approprié pour ces logiques est au début de l'accès externe. Nous avons besoin d'un plus A plus. Un puissant dispositif d'équilibrage de charge est ce que cet article présentera à l'avenir : une passerelle de service.

La passerelle de services fait partie intégrante de l'architecture des microservices. Dans le processus de fourniture uniforme d'API REST aux systèmes externes via la passerelle de service, en plus des fonctions de routage des services et d'équilibrage de charge, il dispose également d'un contrôle des autorisations et d'autres fonctions. Zuul dans Spring Cloud Netflix joue un tel rôle, en fournissant une protection de porte d'entrée pour l'architecture des microservices. En même temps, il migre le contenu de logique non métier plus lourd du contrôle des autorisations vers le niveau de routage des services, de sorte que le corps principal du cluster de services. peut avoir plus de capacités. Haute réutilisabilité et testabilité.

(7) Spring Cloud Bus

Dans (5) Spring Cloud Config, les fichiers de configuration que nous connaissons peuvent être stockés dans Git et à d'autres endroits via Config Server, via Config Client le lit, mais notre fichier de configuration ne peut pas toujours rester inchangé. Comment le mettre à jour lorsque notre fichier de configuration change ?

Le moyen le plus simple est de réobtenir le client de configuration, mais Spring Cloud ne vous permettra jamais de le faire. Spring Cloud Bus fournit une opération qui nous permet de réobtenir le service sans arrêter la mise à jour. notre configuration.

Signification officielle du Spring Cloud Bus : bus de messages.

Bien sûr, la mise à jour dynamique de la configuration du service n'est qu'une utilisation du bus de messages, et il existe de nombreuses autres utilisations.

Quels sont les sept composants majeurs de Spring Cloud ?

Résumé

Spring Cloud a plus de composants que ceux-ci Grâce à l'introduction verbale ci-dessus, vous devriez pouvoir avoir un aperçu général. Comprenant, je comprends, mais les fonctions de chaque composant sont bien plus que celles présentées ci-dessus. Chaque composant a également de nombreux autres points fonctionnels. J'espère que l'introduction ici pourra vous donner une introduction et n'aurez pas peur d'un si grand concept de microservices. .

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn