Heim  >  Artikel  >  Java  >  Was sind die sieben Hauptkomponenten von Spring Cloud?

Was sind die sieben Hauptkomponenten von Spring Cloud?

青灯夜游
青灯夜游Original
2021-04-25 17:43:5222960Durchsuche

Spring Cloud sieben Hauptkomponenten: 1. Eureka-Komponente, die beschreibt, wie der Dienst registriert wird und 2. Ribbon-Komponente, ein Deklarations-Webdienst-Client; Komponente; 6. Zuul-Komponente; 7. Bus-Komponente.

Was sind die sieben Hauptkomponenten von Spring Cloud?

Die Betriebsumgebung dieses Tutorials: Windows7-System, Java8-Version, DELL G3-Computer.

Spring Cloud Family Bucket-Komponente

Bevor ich den Spring Cloud Family Bucket vorstelle, muss ich zunächst Netflix vorstellen. Netflix ist ein großartiges Unternehmen, das im Spring Cloud-Projekt eine wichtige Rolle spielt , einschließlich Eureka, Hystrix, Zuul, Archaius usw., sind in der Microservice-Architektur von entscheidender Bedeutung. Basierend auf Netflix kapselt Spring eine Reihe von Komponenten mit den Namen: Spring Cloud Eureka, Spring Cloud Hystrix, Spring Cloud Zuul usw., die im Folgenden vorgestellt werden jede Komponente einzeln:

(1) Spring Cloud Eureka

Das Wesentliche an Microservices ist der Aufruf verschiedener API-Schnittstellen. Wie geht man damit um?

Die Antwort ist Spring Cloud Eureka. Wir können unsere eigene definierte API-Schnittstelle für Spring Cloud Eureka registrieren. Wenn Sie Zookeeper studiert haben, können Sie die Rolle von Eureka gut verstehen Die Funktionen von Zookeeper sind ähnlich, sie sind alle Dienstregistrierung und -erkennung. Zu den Komponenten, aus denen das Eureka-System besteht, gehören: Dienstregistrierungszentrum, Dienstanbieter und Dienstkonsument.

Was sind die sieben Hauptkomponenten von Spring Cloud?

Das obige Bild beschreibt (das Bild stammt aus dem Internet):

1. Der Master-Slave-Replikationscluster des Service-Registrierungszentrums, bestehend aus zwei Eureka-Service-Registrierungszentren
2. Dann der Dienstanbieter Berichte an das Registrierungszentrum. Durchführung von Registrierungen, Erneuerungen, Offline-Diensten usw !);
4 , und dann wählt der Dienstkonsument einen Dienstanbieter aus, der den Dienst nutzt, basierend auf der Dienstliste, die er vom Eureka Service Registration Center erhalten hat.
(2) Spring Cloud RibbonSpring Cloud Eureka beschreibt, wie Dienste registriert werden, wo sie registriert werden und wie Dienstkonsumenten Dienstinformationen von Dienstproduzenten erhalten. Allerdings verwaltet Eureka nur Dienstproduzenten und Registrierungen Das Zentrum und der Servicekonsument rufen die vom Serviceproduzenten bereitgestellten Daten über das Spring Cloud Ribbon auf.

In (1) wird erwähnt, dass der Dienstkonsument die Dienstliste des Dienstproduzenten vom Registrierungszentrum erhält und lokal verwaltet. Die Art und Weise dieses Client-Erkennungsmodus besteht darin, dass der Dienstkonsument den entsprechenden Knoten für den Zugriff auf den Dienst auswählt Mit den vom Hersteller bereitgestellten Daten wird dieser Prozess der Auswahl geeigneter Knoten durch Spring Cloud Ribbon abgeschlossen.

Hier kommt der Spring Cloud Ribbon Client Load Balancer her.

(3) Spring Cloud Feign

In den obigen Punkten (1) und (2) haben wir die einfachste Methode verwendet, um die Dienstregistrierungserkennung und den Dienstaufrufvorgang zu realisieren. Wenn Sie den Dienst speziell mit Ribbon aufrufen, Sie können das Gefühl haben, dass die Verwendung von Ribbon immer noch etwas kompliziert ist, sodass Spring Cloud Feign ins Leben gerufen wurde.

Spring Cloud Feign ist ein deklarativer Webdienst-Client, der das Schreiben von Webdienst-Clients erleichtert. Er bietet Unterstützung für steckbare Annotationen, einschließlich Feign-Anmerkungen und JAX-RS-Anmerkungen und Decoder, Spring Cloud fügt Spring MVC Anmerkungen hinzu, Spring Web verwendet standardmäßig HttpMessageConverters und Spring Cloud integriert den von Ribbon und Eureka bereitgestellten HTTP-Client Feign mit Lastenausgleich.

Es kann einfach so verstanden werden: Das Aufkommen von Spring Cloud Feign erleichtert die Verwendung von Eureka und Ribbon.

(4) Spring Cloud Hystrix

Wir wissen in (1), (2), (3), dass wir Eureka verwenden, um Dienste zu registrieren und zu entdecken, Ribbon verwenden, um Lastausgleichsaufrufe von Diensten zu implementieren, und auch wissen, wie Die Verwendung von Feign kann unsere Codierung vereinfachen. Diese reichen jedoch nicht aus, um eine hochverfügbare Microservice-Architektur zu erreichen.

Zum Beispiel: Wenn ein Dienst ausfällt und der Anrufer des Dienstes nicht weiß, dass der Dienst fehlerhaft ist und die Anzahl der zu diesem Zeitpunkt getätigten Anrufe weiter zunimmt, wird er schließlich darauf warten, dass die ausgefallene vertrauende Partei einen Fehler bildet Der Rückstand an Aufgaben führt schließlich zur Lähmung der eigenen Dienste.

Spring Cloud Hystrix wurde entwickelt, um diese Situation zu lösen und den kontinuierlichen Zugriff auf einen fehlerhaften Dienst zu verhindern. Die Bedeutung von Hystrix ist: Leistungsschalter selbst ist ein Schaltgerät, das zum Schutz des Stromkreises in unseren Häusern verwendet wird, um eine Stromüberlastung zu verhindern. Wenn ein Elektrogerät in der Leitung kurzgeschlossen wird, kann der Leistungsschalter das defekte Elektrogerät schalten rechtzeitig, um zu verhindern, dass schwerwiegende Folgen wie Überlastung, Erwärmung oder sogar Brand auftreten können.

(5) Spring Cloud Config

Als es noch nicht viele Mikrodienste gab, war die Konfiguration und Verwaltung verschiedener Dienste relativ einfach. Wenn jedoch Hunderte oder Tausende von Mikrodienstknoten eingerichtet sind, wird die Verwaltung der Dienstkonfiguration einfacher kompliziert.

In einem verteilten System ist aufgrund der großen Anzahl von Diensten eine verteilte Konfigurationscenter-Komponente erforderlich, um eine einheitliche Verwaltung und Echtzeitaktualisierung von Dienstkonfigurationsdateien zu ermöglichen. In Spring Cloud gibt es die verteilte Konfigurationscenter-Komponente Spring Cloud Config, die die Platzierung des Konfigurationsdienstes im Speicher des Konfigurationsdienstes (also lokal) sowie die Platzierung im Remote-Git-Repository unterstützt. In der Cpring Cloud Config-Komponente gibt es zwei Rollen, eine ist Config Server und die andere ist Config Client.

Config Server wird zum Speichern von Konfigurationsattributen verwendet. Der Speicherort kann Git Warehouse, SVN Warehouse, lokale Dateien usw. sein. Config Client wird zum Lesen von Serviceattributen verwendet.

Was sind die sieben Hauptkomponenten von Spring Cloud?

(6) Spring Cloud Zuul

Wir verwenden Eureka in Spring Cloud Netflix, um das Service-Registrierungscenter sowie die Service-Registrierung und -Erkennung zu implementieren Spring Cloud Config implementiert die externe Konfiguration und Versionsverwaltung mehrerer Umgebungen. Um den Service-Cluster robuster zu machen, wird der Fusionsmechanismus von Hystrix verwendet, um die Ausbreitung von Fehlern zu vermeiden, die durch Ausnahmen in einzelnen Services in der Microservice-Architektur verursacht werden.

Was sind die sieben Hauptkomponenten von Spring Cloud?

Lassen Sie uns zunächst über einige Dinge sprechen, die eine solche Architektur leisten muss, und über ihre Mängel:

1. Erstens zerstört sie die zustandslose Funktion des Dienstes. Um die Sicherheit externer Dienste zu gewährleisten, müssen wir eine Berechtigungskontrolle für den Dienstzugriff implementieren. Der Berechtigungskontrollmechanismus von offenen Diensten wird die Geschäftslogik des gesamten offenen Dienstes durchdringen und verunreinigen zerstört den Dienst. Die zustandslosen Eigenschaften der REST-API im Cluster. Aus Sicht der spezifischen Entwicklung und Prüfung ist neben der Berücksichtigung der tatsächlichen Geschäftslogik während der Arbeit auch eine zusätzliche und nachhaltige Steuerungsverarbeitung des Schnittstellenzugriffs erforderlich.

2. Zweitens können vorhandene Schnittstellen nicht direkt wiederverwendet werden. Wenn wir über eine vorhandene Cluster-Zugriffsschnittstelle auf externe Dienste zugreifen müssen, müssen wir der ursprünglichen Schnittstelle eine Überprüfungslogik hinzufügen oder einen Proxy-Aufruf hinzufügen, um die Berechtigungskontrolle zu implementieren.
Wie sollten wir angesichts ähnlicher Probleme wie die oben genannten diese lösen? Kommen wir zum Hauptthema dieses Artikels: Service Gateway!

Um die oben genannten Probleme zu lösen, müssen wir Dinge wie die Berechtigungskontrolle aus unseren Serviceeinheiten extrahieren. Der am besten geeignete Ort für diese Logik ist am vorderen Ende des externen Zugriffs Was in diesem Artikel in Zukunft vorgestellt wird: Service Gateway.

Service Gateway ist ein integraler Bestandteil der Microservice-Architektur. Bei der einheitlichen Bereitstellung von REST-APIs für externe Systeme über das Service-Gateway verfügt es neben Service-Routing- und Lastausgleichsfunktionen auch über Berechtigungssteuerung und andere Funktionen. Zuul in Spring Cloud Netflix spielt eine solche Rolle, indem es einen Front-Door-Schutz für die Microservice-Architektur bietet und gleichzeitig den schwereren nicht-geschäftsbezogenen Logikinhalt der Berechtigungssteuerung auf die Service-Routing-Ebene migriert, so dass der Service-Cluster-Hauptteil kann mehr Funktionen haben.

(7) Spring Cloud Bus

In (5) Spring Cloud Config können die uns bekannten Konfigurationsdateien über Config Server an Orten wie Git gespeichert und über Config Client gelesen werden, unsere Konfigurationsdateien sind jedoch nicht möglich bleibt unverändert. Wie aktualisieren wir es, wenn sich unsere Konfigurationsdatei ändert?

Der einfachste Weg besteht darin, den Config-Client erneut abzurufen. Spring Cloud lässt dies jedoch niemals zu.

Offizielle Bedeutung des Spring Cloud Bus: Nachrichtenbus.

Natürlich ist die dynamische Aktualisierung der Dienstkonfiguration nur eine Verwendung des Nachrichtenbusses, und es gibt viele andere Verwendungsmöglichkeiten.

Was sind die sieben Hauptkomponenten von Spring Cloud?

Zusammenfassung

Durch die obige mündliche Einführung sollten Sie in der Lage sein, ein allgemeines Verständnis der einzelnen Komponenten zu erlangen Komponente Es gibt viele andere funktionale Punkte. Ich hoffe, die Einführung hier kann Ihnen eine Einführung geben und Sie haben keine Angst vor einem so großen Konzept von Microservices.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

Das obige ist der detaillierte Inhalt vonWas sind die sieben Hauptkomponenten von Spring Cloud?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn