Ohne einen vollständigen Überblick über Ihre Architektur (was hier nicht möglich wäre) ist es schwierig, genau zu wissen, was Sie erreichen möchten. Aber auf den ersten Blick scheint es, als würdest du zu viel von Hystrix erwarten. Sobald der Fallback abgeschlossen ist, ist es abgeschlossen.
Wenn Sie eine Nachricht an eine Warteschlange gesendet haben, muss diese Nachricht von irgendwoher konsumiert werden. Sie möchten, dass die Nachricht nur konsumiert wird, wenn Service B ausgeführt wird. Logischerweise ist die einzige Option, dass Service B von dieser Warteschlange für fehlgeschlagene Anforderungen konsumiert. Vermutlich müsste Service B beim Verbrauch dieser Nachricht die Anfrage auf Service A wiederholen.
Ich nehme an, Sie könnten einen Watchdog-Dienst haben, der nach Erhalt einer Nachricht aus der Warteschlange fehlgeschlagener Anfragen beginnt, den Status zu überprüfen von Service B und einmal ist es "grün" wiederholt die Anfrage auf Service A.
Es klingt alles sehr verwirrt zu mir, würde ich vorschlagen, ein Umdenken.
Ich vermute, diese statische Nachricht ist etwas wie "Entschuldigung, wir konnten Ihre Anfrage jetzt nicht abschließen, aber wir werden für Sie im Hintergrund versuchen".
Von dem ich denke, es wäre besser, wenn Sie Service B in erster Linie rein nachrichtengesteuert gemacht hätten. Holen Sie Service A, um eine Nachricht direkt an Service B zu senden. Dann müssen Sie sich keine Sorgen machen, dass der Service heruntergefahren oder überlastet ist oder was auch immer.
@ ahus1 Ich habe gesehen, dass Sie praktische Erfahrung mit Hystrix haben, können Sie mir bitte dabei helfen? – maniker
Eine Vermutung zu Ihrem Fragetitel: Meinten Sie "Hat die Hystrix die Möglichkeit, die ausstehenden Anfragen in der Warteschlange wiederherzustellen?" – leanne
Ja :-) Ich bin in der Lage, die Schaltung zu öffnen und die fehlgeschlagenen Anfragen an die Warteschlange zu senden, aber wird die Schaltung geschlossen und die ausstehenden Anfragen vorverarbeiten, sobald der Dienst läuft? – maniker