Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9508|Antwort: 2

Implementierung des verteilten Zookeeper-Schlosses

[Link kopieren]
Veröffentlicht am 20.03.2018 16:23:52 | | | |
Schlossdesign

  Verstehen Sie die Idee zur Schlossimplementierung:
1. Beginnen Sie damit, ein Verzeichnis als Lock (znode) zu erstellen, das üblicherweise verwendet wird, um die gesperrte Entität namens :/lock_node zu beschreiben
2. Der Client, der das Schloss erhalten möchte, erstellt einen Znode im Lock-Verzeichnis als Kindknoten des Locks/lock_node, und der Knotentyp ist Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
Zum Beispiel erzeugen zwei Clients Znodes, /lock_node/lock-1 und /lock_node/lock-2
3. Der aktuelle Client ruft getChildren(/lock_node) auf, um alle Kindknoten des Lock-Verzeichnisses abzurufen, ohne Watch zu setzen, und dann die kleinen Bruderknoten zu erhalten (erstellt in Schritt 2).
4. Der Knoten, der in Schritt 3 kleiner als er selbst ist, existiert nicht & der kleinste Knoten ist derselbe wie der, der in Schritt 2 erstellt wurde, was darauf hinweist, dass die aktuelle Client-Sequenznummer die kleinste ist, hole die Sperre und beende.
5. Der Client überwacht den Zustand des geordneten temporären Knotens, der der nächstkleinste zu sich selbst ist
6. Wenn sich der Status des überwachten Unterknotens ändert, springen Sie zu Schritt 3 und setzen Sie die Nachverfolgungsoperationen fort, bis das Lock-Race beendet ist.     

Der Autor wird hier die Verteilungssperre nicht einführen; schauen wir uns das Flussdiagramm des gesamten Codedesigns wie folgt an.





Vorhergehend:Detaillierte Erklärung von AutoResetEvent in .net/c#
Nächster:Bezüglich des Problems, dass Android 7.0 keine HTTPS-Paketerfassung durchführen kann
 Vermieter| Veröffentlicht am 20.03.2018 16:49:35 |
Zookeeper verteilte Sperrschritte:
1. Zookeeper ist ein Knoten mit Knoten, ähnlich wie ein Dateiverzeichnis, daher abstrahieren wir das Schloss in ein Verzeichnis. Zookeeper hat einen Knoten mit EPHEMERAL_SEQUENTIAL Typen, mehrere Threads, und wenn der Knoten von Zookeeper erstellt wird, hilft es uns, die Reihenfolge der Erstellung zu ordnen, sodass die Verzeichnisse unter diesem Knoten sequentiell sind.
2. Den kleinsten Knoten des aktuellen Verzeichnisses abholen, bestimmen, ob der kleinste Knoten der aktuelle Knoten ist, ob das bedeutet, dass die Sperre erfolgreich ist, falls es nicht der Fehler bei der Erfassung des Schlosses ist.
3. Wenn die Sperre versagt, musst du, um den Schwarmeffekt zu vermeiden, den vorherigen Knoten des aktuellen Knotens erhalten und dann den Knoten anhören.
4. Wenn du das tust, benachrichtigst du beim Aufheben des Schlosses auch den nächsten Knoten.
 Vermieter| Veröffentlicht am 20.03.2018 16:54:46 |
Informieren Sie sich im Voraus über den Status der Tierpfleger und die Art von Veranstaltungen.


Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com