it-swarm.com.de

Hystrix-Konfiguration

Ich versuche, Hystrix für meine Anwendung mit Hystrix-Javanica zu implementieren.

Ich habe hystrix-configuration.properties wie folgt konfiguriert

hystrix.command.default.execution.isolation.strategy=SEMAPHORE
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000 
hystrix.command.default.fallback.enabled=true
hystrix.command.default.circuitBreaker.enabled=true
hystrix.command.default.circuitBreaker.requestVolumeThreshold=3 
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=50000
hystrix.command.default.circuitBreaker.errorThresholdPercentage=50

kurzschlussmuster funktioniert gut, aber ich habe einen Zweifel an diesem hystrix.command.default.circuitBreaker.requestVolumeThreshold=3

  1. Stellt es fest, dass der Stromkreis nach 3 Fehlern geöffnet ist oder
  2. Öffnen Sie den Stromkreis nach 3 gleichzeitigen Fehlern.

Durch die Dokumentation gegangen link

Kann jemand antworten?

 

 

10
Jay

Funktionsweise des Hystrix-Leistungsschalters: Hystrix bietet keinen Leistungsschalter, der nach einer bestimmten Anzahl von Fehlern ausfällt. Der Hystrix-Stromkreis wird unterbrochen, wenn:

innerhalb einer Zeitspanne der Dauer metrics.rollingStats.timeInMilliseconds überschreitet der Prozentsatz der Aktionen, die zu einer behandelten Ausnahme führen, errorThresholdPercentage, vorausgesetzt, dass die Anzahl der Aktionen durch die Schaltung in der Zeitspanne mindestens requestVolumeThreshold ist.


Was ist requestVolumeThreshold? requestVolumeThreshold ist ein Mindestschwellenwert für volume (Anzahl) von Anrufen durch die Leitung, die erfüllt werden muss (innerhalb des Rollfensters), bevor die Schaltung eine prozentuale Ausfallrate berechnet. Erst wenn dieses Mindestvolumen (in jedem Zeitfenster) erreicht ist, vergleicht die Schaltung den Ausfallanteil Ihrer Anrufe mit dem von Ihnen konfigurierten errorThresholdPercentage

Stellen Sie sich vor, dass es keine solche Mindestschwelle für Volumen durch die Schaltung gibt. Stellen Sie sich den ersten Anruf in einem Zeitfenster vor. Sie hätten 1 von 1 Anrufen einen Fehler, = 100% Ausfallrate, die höher ist als der von Ihnen eingestellte Schwellenwert von 50%. Der Stromkreis würde also sofort abbrechen. 

Die requestVolumeThreshold existiert, damit dies nicht geschieht. Das bedeutet, die Fehlerrate durch Ihre Schaltung ist nicht statistisch signifikant (und wird nicht mit errorThresholdPercentage verglichen), bis mindestens requestVolumeThreshold-Aufrufe in jedem Zeitfenster empfangen wurden.

35

ich bin ziemlich neu bei Hystrix, aber ich denke, ich kann Ihnen helfen, Im Allgemeinen ist hystrix.command.default.circuitBreaker.requestVolumeThreshold eine Eigenschaft, die die Mindestanzahl von Anforderungen in einem Rolling-Fenster festlegt, durch das der Trip ausgelöst wird Circuit und der Standardwert ist 20 und der Wert kann in der Eigenschaftendatei oder in unserer annotierten Methode @HystrixCommand geändert werden.

Wenn dieser Eigenschaftswert beispielsweise 20 ist, werden, wenn nur 19 Anforderungen im Rolling-Fenster empfangen werden (beispielsweise ein Fenster von 10 Sekunden), die Schaltung nicht geöffnet, selbst wenn alle 19 ausgefallen sind. Wenn der Wert der fehlgeschlagenen Anforderung 20 erreicht, wird die Schaltung geöffnet und die entsprechenden Anrufe werden an Fallback gesendet, auch wenn der Anruf erfolgreich ist, bis die Zeitspanne für das Schlaffenster abgeschlossen ist. 

die Zeitdauer des Schlaffensters legt die Zeit fest, nach der die Schaltung ausgelöst wird, um Anforderungen abzulehnen, bevor erneut versucht werden kann, zu bestimmen, ob die Schaltung erneut geschlossen werden soll. Der Wert ist standardmäßig auf 5000 Millisekunden festgelegt. Dies kann durch Überschreiben von circuitBreaker geändert werden. sleepWindowInMilliseconds - Eigenschaft.

sie finden alle Eigenschaften und deren Beschreibung hier

0
Sumanth Duvvuru