[JAVA] Leistungsschaltermuster habe ich überprüft

Auslöser zur Untersuchung

Auf der Trinkparty sind die jungen Leute des Unternehmens Netflixs Hystrix, das Circuit Breaker Pattern, kurz Netflix und Bee. Ich sagte, aber ehrlich gesagt, was ist das? Da es in einem Zustand war, möchte ich verfolgen, wie es ist.

Wie ist es?

Leistungsschalter ist ein "Leistungsschalter" auf Japanisch. Wenn Sie die Klimaanlage bei eingeschaltetem Trockner einschalten, fällt sie ab.

Wenn der Angerufene aufgrund eines API-Aufrufs keine Verbindung herstellen kann, wartet er normalerweise bis zu einer Zeitüberschreitung und gibt einen Fehler zurück.

Dies ist nicht vorzuziehen, da das Anfordern verschwenderisch ist, obwohl bekannt ist, dass es einen Fehler verursacht, und die Belastung der anderen Partei erhöht wird.

Wenn Sie einen Leistungsschalter an einem solchen Ort platzieren und die Anforderung über den Schwellenwert hinaus fehlschlägt, wird der Leistungsschalter ausgeschaltet und ein Fehler wird sofort zurückgegeben.

Ich denke, dass der Breaker im Webdienst verwendet wird, um die Kette von Hindernissen zu stoppen.

Kette von Hindernissen

Im Fall von Mikrodiensten denke ich, dass es die API eines anderen Dienstes aufruft und dann einen anderen Dienst darin aufruft.

A -> B -> C Wenn C hier fehlschlägt, wartet B auf eine Antwort, bis das Zeitlimit überschritten ist. Während B auf eine Zeitüberschreitung wartet, kommen andere Anfragen herein und sie warten auch auf eine Antwort bis zur Zeitüberschreitung ... Sie verbrauchen Ressourcen und B fällt ebenfalls. Wenn B fällt, besteht die Sorge, dass als nächstes eine Kette von Hindernissen wie A auftritt.

Referenz: Fehler und Fehlerwand in Microservices https://qiita.com/okumin/items/d7a108ea36f3ad2e3882 Die Figur war super leicht zu verstehen

Circuit Breaker Pattern Wie Martin Fowler sagt, sollten XP, Refactoring und andere Leute, die um 2000 Java gemacht haben, davon gehört haben. Ich wurde etwas nervös. https://martinfowler.com/bliki/CircuitBreaker.html Es ist kurz und wenn Sie es in die Google-Übersetzung einfügen, ist es sinnvoll.

Ich denke, es ist leicht zu verstehen, da es Code- und Sequenzdiagramme wie Implementierungsbeispiele gibt.

Stellen Sie einen Unterbrecher zwischen den Client und den angerufenen Dienst. Es ist ein Muster, das den Leistungsschalter fallen lässt, den Leistungsschalter anhebt und dies automatisch tut.

Ist es zum Beispiel so?

Zusammenfassung

Der Halter von Manma Electric war genau so, wie ich es mir vorgestellt hatte. Ein Mechanismus, um eine Fehlerkette zu verhindern, wenn der Remotezugriff fehlschlägt. Wenn der Dienst des Angerufenen beendet wird, ist es wenig sinnvoll, wenn der Dienst des Anrufers nicht fortgesetzt werden kann. Wenn Sie jedoch Netflixs Hystrix verwenden, können Sie anscheinend auch überwachen und überwachen, und Sie haben möglicherweise das Gefühl, dass es sich um eine gefährliche Atmosphäre handelt.

Sicherlich ist Netflix 'Hystrix das Leistungsschaltermuster, kurz Netflix und Bee.

Recommended Posts

Leistungsschaltermuster habe ich überprüft
Leistungsschaltermuster mit Apache-Kamel
Ich habe das überprüft
Ich habe versucht, das vorherige Leben vor dem vorherigen Leben anstelle von Zundoko Kiyoshi zu überprüfen
Leistungsschaltermuster mit Apache Camel Teil 2 (Probieren Sie das Hystrix Dashboard aus)
Ich habe Java Flight Recorder (JFR) überprüft.