Ist es möglich, einen Proxy zu einem Hauptserver/Servern/Service einzurichten, aber wenn dies nicht verfügbar ist, umleiten Anfragen an einen sekundären Server/Server/Service?Spring Cloud Zuul Fallback-Service
Der sekundäre Dienst ist keine Instanz des gleichen Typs der primären. Ihre API ist kompatibel, aber nicht das Gleiche. Die sekundäre Ressource ist eine weniger leistungsfähige letzte Ressource, wenn die primäre nicht verfügbar ist.
Wir verwenden nicht Eureka, nur feste IPs noch.
zuul:
routes:
whatever:
path: /whatever/**
sensitiveHeaders: Cookie,Set-Cookie
url: http://server1:8080/whatever
hatte ich einen Blick auf ZuulFallbackProvider
, aber diese Schnittstelle ist eine feste Antwort auf Fehlerfall zur Verfügung gestellt. Ich möchte, wenn http://server1:8080/whatever nicht reagiert, umleiten an http://server2:8080/whateverApi2.
Danke.
Danke für die Antwort. Ich werde das noch nicht als Lösung markieren, nur um zu sehen, ob es eine "nur Konfigurations" -Alternative gibt. Ich werde Ihre Lösung verwenden, vielleicht sogar direkt eine der Netflix OSS-Komponenten anstelle von RestTemplate verwenden, wenn Sie die gesamte Spring Cloud-Infrastruktur verwenden. –
Ich bin endlich auf dieses Problem zurückgekommen und habe diesen Ansatz versucht. Aber der ZuulFallbackProvider ist ein statisches Fallback. Gibt es Zuul, Ribbon oder Hystrix, um die Anfrage tatsächlich an meinen Fallback-Dienst weiterzuleiten? Ich möchte nicht, dass es zur Ribbon-Server-Liste hinzugefügt wird, weil ich möchte, dass es als letzter Ausweg ausgeführt wird, nur wenn die Server heruntergefahren sind. –
Wenn Sie kein Hystrix-Fallback verwenden möchten, ist ein weiterer möglicher Ansatz, dass Sie einen eigenen "route" - oder "post" -Filter erstellen. In Ihrem Filter können Sie das Ergebnis der ursprünglichen Anfrage überprüfen und dann die Anfrage an den alternativen Server mit den richtigen Parametern weiterleiten. –