Vermeidung von Meinungsverschiedenheiten, Abstimmungen und Quorum [geschlossen]

Angenommen, Sie haben n Prozesse, n> 2. Sie möchten sich darauf einigen, dass einer aktiv sein soll. Sie müssen also gegeneinander abstimmen, um zu bestimmen, welches aktiv ist.

Alle Prozesse können jederzeit fehlschlagen. Wir möchten, dass möglichst ein Prozess aktiv ist, aber ...

WirMuss Lassen Sie niemals zwei gleichzeitig aktiv sein. Wenn Sie sich also nicht sicher sind, ist es besser, wenn niemand aktiv ist. (Dh wir wollen Split Brain vermeiden)

Der einzige verfügbare Kommunikationsmechanismus zwischen ihnen ist das Pub-Sub-Messaging (nicht Punkt-zu-Punkt).

Eine oder mehrere Datenbanken sind verfügbar, aber keine Datenbank sollte eine einzelne Fehlerquelle sein. Dh Es wäre sehr unerwünscht, wenn alle Prozesse für die Arbeit zur Verfügung stünden, und der Verlust einer einzigen Datenbank verhinderte dies.

Design? Welche Nachrichten müssen veröffentlicht werden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage