Mit der Erkennung von Eureka Service -Registrierung, dem Hystrix Circuit Breaker, dem Call -Lastausgleich und dem Feder -Cloud -Konfigurationskonfigurationszentrum scheinen ein MicroService -Framework vollständig zu sein, zuletzt, aber nicht zuletzt, ein Service -Gateway ist unverzichtbar.
Die Spring Cloud Zuul Routing ist ein wesentlicher Bestandteil der Microservice -Architektur und bietet Kantendienste wie dynamisches Routing, Überwachung, Resilienz, Sicherheit usw. Zuul ist ein Lastausgleicher, der auf JVM -Routing und Serverseite von Netflix erstellt wird.
Einführung in Zuul
Zuul spielt die Rolle des "intelligenten Gateways" während des gesamten Frameworks Cloud Microservices. Einerseits ist Zuul ein Access Gateway, das die Rolle eines Reverse -Proxy spielt und der einzige Eingang für externe Verbraucher ist, die interne Dienste anfordern. Auf der anderen Seite hat Zuul auch Filterfunktionen. Durch die Injektion von Filterregeln zur Laufzeit kann die Benutzerauthentifizierung, dynamische Routing, die Freigabe von Graustufen, A/B -Tests, Laststrombegrenzung und andere Funktionen realisieren.
Die meisten Funktionen von Zuul werden durch Filterfunktionen erfüllt. Zuul kann vier Standardtypen der Filterung liefern, wie in der folgenden Abbildung gezeigt:
1) Vor dem Routing funktionieren die Filterregeln. Sie können den "Pre" -Filter verwenden, um die Benutzerauthentifizierung, Aufzeichnungsanforderungsprotokolle usw. Zu erreichen.
2) Routing: Filterregeln werden beim Routing wirksam. Dynamisches Routing, Graustufenfreisetzung, A/B -Tests, Laststrombegrenzung usw. können verwendet werden, um dynamisches Routing, Graustufenfreigabe und vieles mehr zu erreichen.
3) Post: Die Filterregel wird nach dem Routing wirksam. Der "Post" -Filter kann verwendet werden, um Statistiken und Metriken zu sammeln, die entsprechenden Microservices in die HTTP -Antwort zu schreiben und an den Serviceverbraucher zurückzugeben.
4) Fehler: Es tritt auf, wenn ein Fehler während des Routing -Prozesses der Filterregel auftritt. Sie können den Fehlerfilter verwenden, um das Fehlerprotokoll aufzuzeichnen und die sekundäre Verarbeitung des Fehlers usw. durchzuführen.
Übergeben Sie Nachrichten zwischen Filtern mit RequestContext. Der in RequestContext gespeicherte Inhalt enthält Routing-Zieladresse, Fehlerinformationen, Anforderungsinformationen, Antwortinformationen usw. Zuuls Filterregeln können auch in einer JVM-basierten Sprache geschrieben werden, einschließlich Java, Python, Groovy usw.
1.. Zuul Beispiel
Basierend auf der vorherigen Demo werden wir den Zuul Gateway -Service demonstrieren
1. Erstellen Sie eine Gateway -Klasse
@EnableZuulproxy @springCloudApplication // Integrieren @SpringBootApplication, @enablediscoveryClient, @enableCircuitbreaker Public Class Zuulapplication {public static void main (String [] args) {New SpringApplicationBuilder (ZuuLapplication.Class). }}2. Fügen Sie Eigenschaftenkonfigurationsdatei hinzu
Spring.Application.name = api-Gateway Server.port = 5555 Zuul.Routes.api-a.path =/api-a/** Zuul.Routes.api-a.serviceid = compute-service Zuul.routes.api-b.path =/api-b/** kuul.routes.api-B.Siesid = compuTes-b/** kuul.routes.api-B.Siesid = compuTes-service eureka.client.serviceurl.defaultzone = http: // localhost: 1111/eureka/
Zeigen Sie auch auf die Adresse der Eureka Service Registration Center, API-A.Serviceid, B-ServiceId Punkt auf den Namen des Dienstanbieters
3. Zugangseffekt
Ursprünglich wurde die Instanz des Computer-Service-Dienstes direkt über den Link http: // berechnet-service/add? A = 10 & b = 20 zugegriffen. Jetzt können Sie direkt auf den Berechnungserdienstdienst von Localhost: 5555/API-A/Add? A = 1 & B = 2 Gateway-Adresse zugreifen. In ähnlicher Weise bietet das Zuul -Gateway auch Funktionen für Servicelastausgleich und sendet alle Anfragen an die Service -Service -Instanz.
2. Was ist ein Tor? Warum müssen Sie ein Gateway verwenden?
In der obigen Abbildung ist die API -Schnittstelle direkt dem Service Caller ohne Gateway ausgesetzt. Wenn die Anzahl der Anrufer zunimmt, sind unterschiedliche Geschäftsanrufer unterschiedlich, und benutzerdefinierte Zugriffsrechte, Überprüfung und andere Logik müssen hinzugefügt werden. Nach dem Hinzufügen des API-Gateways wird eine Wand zwischen dem Anrufer von Drittanbietern und dem Dienstanbieter erstellt. Diese Wand kommuniziert direkt mit dem Anrufer, um die Berechtigungssteuerung zu erhalten, und dann wird die Anfrage auf den Backend -Server ausgeglichen. So wie es keinen direkten Zugriff auf die Methode hinzufügen muss, wird die Anforderung über den API-A/Add-Link an die Serviceinstanz übergeben. Zuul ist ein API -Gateway, das Lastausgleich, Reverse Proxy und Berechtigungsauthentifizierung bietet.
Ähnlich wie bei NGINX ist Zulus Lastausgleich für die Verteilung von Anforderungen an einen Dienst oder eine Serviceinstanz im Cluster eine Schutzwand am vorderen Ende des Anwendungsdienstes. Das zuvor eingeführte Ribbon konzentriert sich auch auf Service -Lastfunktionen, die sich an die Dienstleistungsverbraucher richten, die Anrufanfragen an eine bestimmte Dienstbereitungsinstanz verteilen. Beide sind Lastausgleich, der tatsächlich auf verschiedenen Ebenen des Systems durchgeführt wird.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.