1

Ich habe einen Zuul-Proxy, und es funktioniert gut, bis es auf einen Server umleitet, der längere Zeit als normal (mehr als 10 Sekunden) zur Antwort benötigt.Zuul ReadTimeout von Service

Ich kann den Lese-Timeout durch Eigenschaften ändern (zuul.host.socket-timeout-millis), damit es richtig funktionieren kann.

Aber ich brauche eine andere Zeitüberschreitung basierend auf dem Dienst, den der Proxy erreicht.

Ich habe Eureka nicht in meiner Architektur, also habe ich es in den Eigenschaften deaktiviert. (Ribbon.eureka.enabled = false)

Ich habe versucht, mit

hystrix.command.default.execution.timeout.enabled=false 
hystrix.command.messages.execution.isolation.strategy=THREAD 
hystrix.command.messages.execution.isolation.thread.timeoutInMilliseconds= 100000 

Aber es funktioniert nicht. Es verwendet immer den Wert auf zuul.host.socket-timeout-millis und wenn ich diese Eigenschaft Zuul nicht setze, wird ein Timeout von 10 Sekunden verwendet.

Ich habe auch versucht,

messages.ribbon.ReadTimeout=120000 
ribbon.ReadTimeout=60000 

Aber es verwendet immer das, was auf zuul.host.socket-Timeout-millis ist

Ich weiß nicht, wie das Timeout von Dienst einzustellen.

So kann ich für service1 30 Sekunden für service2 45 Sekunden und für die anderen Dienste einer Vorgabe von 60

Wie kann ich das tun?

Antwort

0

Ich denke, Sie haben, aber ich werde fragen: Haben Sie versucht, beide Eigenschaften zur gleichen Zeit mit einem höheren Wert zu konfigurieren?

Es sollte funktionieren, verwenden wir diese Funktion in Zuul und es funktioniert gut, aber Sie müssen Stand Timeouts konfigurieren (Zuul und Band)

Sie haben Informationen darüber, wie das funktioniert hier: Ribbon, Hystrix

Beachten Sie, dass der Name Ihres Clients je nach Verwendung von Zuul für Ribbon und für Hystrix unterschiedlich sein kann.