2016-06-29 22 views
0

Wir haben einen Software-Proxy basierend auf Spring Boot und Zuul entwickelt, der Dienste innerhalb unserer Integrationsschicht steuern soll. Wir besitzen weder die Systeme, die die verschiedenen Dienste verbrauchen, noch besitzen wir die eigentlichen Dienste selbst. Die Dienste sind derzeit SOAP-basierte Webservices. Wir nutzen Pre-, Post-, Fehler- und Routenfilter. Validierungen sind datenbankgesteuert, einschließlich welcher Client welchen Webservice aufrufen darf. Alle Servicedefinitionen befinden sich in der Datenbank (Anforderungsendpunkt, Anfrage xsd, Antwort xsd, welche Clients aufgerufen werden dürfen usw.).Dynamische Registrierung von Hystrix-Befehlen ohne Javanica-Annotationen im Spring-Boot

Das Ziel ist nun das Hinzufügen von Hystrix-Befehlen zur Behandlung von Dienstfehlern sowie ein Hystrix-Dashboard.

Die Standardmethode zur Verwendung von Hystrix-Befehlen besteht darin, Service-Methoden mit javanica zu kommentieren. Gibt es eine Möglichkeit, die Hystrix-Befehle für diese Webservices zur Laufzeit dynamisch zu deklarieren/registrieren, nachdem die Konfigurationen aus der Datenbank gelesen wurden? Die Hytrix-Überwachung muss auf der Grundlage der mehreren Webservice-Endpunkte erfolgen, die von einem einzelnen Punkt aus aufgerufen werden.

In der Hoffnung, dass dies erreichbar ist ... wenn nicht, würde ich wirklich alle alternativen Vorschläge schätzen, wie Hystrix-Befehle auf diese Weise deklariert werden könnten.

Danke!

Antwort

0

Sie sagen, dass Sie bereits Spring Boot und Zuul verwenden. Wie mappst du die Routen? Durch die url param? Dann müssen Sie Ihre eigenen registrieren. Wenn Sie jedoch die Routen als Ribbon-Services definieren und die Routen als Ribbon-Server übergeben, wie in documentation beschrieben, erhalten Sie Hystrix kostenlos.

+0

Danke Daniel. Entschuldigung für die späte Antwort. Nein, wir verwenden nicht den URL-Parameter. Wir verwenden einen ** route ** Zuul Filter und setzen die URL mit 'requestContext.setRouteHost (neue URL (serviceEndpoint));' wo serviceEndpoint als eine Eigenschaft in einer application.yml eingerichtet wird. Ich könnte versuchen, Ribbon-Dienste zu konfigurieren, damit Hystrix automatisch konfiguriert wird, aber ich bin nicht sicher, wie ich die Hystrix-Eigenschaften pro einmal aufgerufenem Webservice konfigurieren würde. Ich möchte vielleicht Fallback-Antworten pro Webservice als Beispiel definieren. Der Software-Proxy hat eine Liste von Services, die im DB definiert sind – user6527551