Dies ist die übliche Folge von zwei verteilten Komponenten in unserer Java-Anwendung:
1 A sends request to B
2 B starts some job J in parallel thread
3 B returns response to A
4 A accepts response
5 Job finishes after some time
6 Job sends information to A
7 A receives response from a Job and updates
Dies ist das ideale Szenario, vorausgesetzt, alles funktioniert. Natürlich ist das wirkliche Leben voller Misserfolge. Einer der schlimmsten Fälle kann beispielsweise sein, dass ein #6
Fehler nur aufgrund des Netzwerks auftritt: Der Job wurde korrekt ausgeführt, A
weiß jedoch nichts darüber.
Ich suche nach einem einfachen Ansatz zum Verwalten von Fehlern in diesem System. Beachten Sie, dass wir viele Komponenten haben. Daher ist es nicht sinnvoll, sie alle nur aufgrund der Fehlerbehandlung zu gruppieren. Als nächstes habe ich die Verwendung von verteiltem Speicher / Repo, der aus demselben Grund erneut auf jeder Komponente installiert werden würde, aufgegeben.
Meine Gedanken gehen in die Richtung, einen absoluten Zustand auf einem B zu haben und niemals einen anhaltenden Zustand auf einem A
. Dies bedeutet Folgendes:
- bevor
#1
wir darauf hinweisen,A
dass die Arbeitseinheit, dh die Änderung , gleich beginnt - Nur
B
darf dieser Status aufgehoben werden. A
kannB
jederzeit Informationen abrufen , um den Status zu aktualisieren.- Es kann keine neue Änderung an derselben Einheit aufgerufen werden
A
.
Was denken Sie? Gibt es eine einfache Möglichkeit, die Fehler in einem solchen System zu zähmen?