Vorwort
Spring Cloud ist ein komplettes Framework für die Implementierung von Microservices basierend auf Spring Boot. Es bietet die für die Entwicklung von Microservice erforderlichen Komponenten wie Konfigurationsmanagement, Service-Erkennung, Leistungsschalter, intelligente Routing, Mikroagenten, Steuerbus, globale Schlösser, Entscheidungskampagnen, verteilte Sessions und Cluster-Staatsmanagement. Das Wichtigste ist, dass Sie, wenn Sie es mit dem Spring Boot -Framework verwenden, sehr bequem, Cloud -Dienste mit Microservice -Architektur zu entwickeln. Die Spring Cloud enthält viele Subframes, von denen Spring Cloud Netflix eines der von Netflix entwickelten Frameworks ist und später in die Frühlingswolkefamilie aufgenommen wird. Zu den Hauptmodulen gehören: Service -Erkennung, Leistungsschalter und Überwachung, intelligentes Routing, Client -Lastausgleich usw.
In diesem Artikel wird Ihnen die relevanten Inhalte der Komponenten von Spring Cloud vorgestellt und diese für Ihre Referenz und Ihr Lernen weitergegeben. Ich werde unten nicht viel sagen, schauen wir uns die detaillierte Einführung zusammen an.
Timeout von Ribbon
Globale Einstellungen:
Ribbon: Readtimeout: 60000ConnectTimeout: 60000
Lokale Einstellungen:
Service-ID: Ribbon: Readtimeout: 1000ConnectTimeout: 1000
Unter ihnen ist Service-ID der virtuelle Hostname, der von Ribbon verwendet wird, der im Allgemeinen dem auf spring.application.name Eureka-Server registrierten Servicenamen entspricht.
Timeout von vorgetäuscht
Beginnend mit Spring Cloud Edgware unterstützt FEIGN die Konfiguration von Zeitüberschreitungen mit Eigenschaften:
vorgegeben: Client: config: FeignName: ConnectTimeout: 5000 Readtimeout: 5000
Für die org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration#feignRequestOptions Version können Sie feign.Request.Options schreiben, siehe:
RestTemplate Timeout
Manchmal können wir RestTemplate verwenden, z.
@Bean@loadBalancedPublic rastTemplate rastTemplate () {return neu rastTemplate ();}Zu diesem Zeitpunkt kann die Zeitüberschreitung auf die folgende Weise festgelegt werden:
@Bean@loadBalancedPublic rastTemplate rastTemplate () {simpleClientHttpRequestFactory SimpleClientHttprequestFactory = new SimpleClientHttpRequestFactory (); SimpleClientHtTpRequestFactory.setConnectTimeout (1000); SimpleClientHttpRequestFactory.SetReadTimeOut (1000);Zuuls Auszeit
Zuuls Zeitüberschreitung ist komplizierter, da Zuul Ribbon und Hytrix integriert. Im Folgenden finden Sie zwei Situationen:
Wenn Zuuls Route das Band verwendet
Dann: Zuuls Zeitüberschreitung hängt mit Ribbon und Hytrix zusammen. Zu diesem Zeitpunkt kann Zuuls Zeitlimit ähnlich wie folgt konfiguriert werden:
Hystrix: Befehl: Standard: Ausführung: Isolation: Thread: TimeoutinMilliseconds: 1000Ribbon: Readtimeout: 1000 ConnectTimeout: 1000
Codeanalyse: In diesem Fall lautet der für die Zuverwaltung verwendete Filter org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter , das Hystrix und Ribbon integriert.
Wenn Zuuls Route kein Band verwendet
Zum Beispiel: Die Routing -Konfiguration von Zuul lautet wie folgt:
Zuul: Routes: User-Route: # In dieser Konfigurationsmethode gibt Benutzerroute der Route nur einen Namen und kann nach Belieben benannt werden. URL: http: // localhost: 8000/ # angegeben URL Pfad:/user/** # Der Pfad, der der URL entspricht.
Dann hängt die Zeitüberschreitung von Zuul zu diesem Zeitpunkt nur mit den folgenden zwei Konfigurationen zusammen:
Zuul: Host: Socket-Timeout-Millis: 10000 Connect-Timeout-Millis: 2000
Codeanalyse: Die Möglichkeit, URL -Routing direkt zu konfigurieren, wird nicht für Tibbon oder Hytrix verwendet. Der für die Zul -Weiterleitung verwendete Filter ist org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter . In diesem Filter verwendet Zuul Apache Httpclient, um weiterzuleiten.
In realen Szenarien können manchmal die beiden Routing -Methoden in Kombination verwendet werden. Daher wird empfohlen, alle oben genannten Attribute zu konfigurieren.
Hystrix -Zeitüberschreitung
Hystrix: Befehl: Standard: Ausführung: Timeout: aktiviert: True Isolation: Thread: TimeoutinMilliseconds: 1000
Wie oben beträgt die Standardzeit für Hytrix 1 Sekunde. Der Zeitüberschreitungsmechanismus ist standardmäßig aktiviert. Um die Zeitlimit von hystrix auszuschalten, setzen Sie xxx.enabled auf false.
Tipps
Wenn eine Komponente mit Hystrix verwendet wird, wird im Allgemeinen empfohlen, dass das Timeout von Hystrix Timeout> andere Komponenten -Zeitüberschreitungen dazu führen kann, dass die Wiederholungsfunktion fehlschlägt.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.