Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 9508|Odpoveď: 2

Implementácia distribuovaného zámku Zookeeper

[Kopírovať odkaz]
Zverejnené 20. 3. 2018 16:23:52 | | | |
Konštrukcia zámku

  Získajte nápad na implementáciu zámku:
1. Začnite vytvorením adresára ako zámku (znode), ktorý sa zvyčajne používa na opis uzamknutej entity, nazývanej :/lock_node
2. Klient, ktorý chce zámok získať, vytvorí znode v adresári zámku ako poduzol lock/lock_node a typ uzla je Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
Napríklad dvaja klienti vytvárajú znody, /lock_node/lock-1 a /lock_node/lock-2
3. Aktuálny klient volá getChildren(/lock_node), aby získal všetky poduzly adresára zámku bez nastavenia watch, a potom získa bratné uzly, ktoré sú menšie ako on sám (vytvorené v kroku 2).
4. Uzol, ktorý je menší ako on sám v kroku 3, neexistuje a najmenší uzol je rovnaký ako ten vytvorený v kroku 2, čo znamená, že aktuálne poradové číslo klienta je najmenšie, získaj zámok a koniec.
5. Klient monitoruje stav usporiadaného dočasného uzla, ktorý je najbližší po ňom
6. Ak sa stav monitorovaného poduzla zmení, prejdite na krok 3 a pokračujte v následných operáciách, kým sa lockrace neukončí.     

Autor tu nebude uvádzať distribučný zámok, pozrime sa na diagram celého návrhu kódu nasledovne





Predchádzajúci:Podrobné vysvetlenie AutoResetEvent v .net/c#
Budúci:Čo sa týka problému, že Android 7.0 nedokáže vykonávať zachytávanie https paketov
 Prenajímateľ| Zverejnené 20. 3. 2018 16:49:35 |
Zookeeper distribuoval zámkové kroky:
1. Zookeeper je uzol s uzlami, podobný adresárovi súborov, takže abstrahujeme zámok do adresára, zookeeper má uzol EPHEMERAL_SEQUENTIAL typov, viacero vlákien a keď uzol vytvorí zookeeper, pomôže nám usporiadať poradie vytvorenia, takže adresáre pod týmto uzlom sú sekvenčné.
2. Získajte najmenší uzol aktuálneho adresára, zistite, či je najmenší uzol aktuálny, či to znamená, že zámok bol úspešný, ak nejde o zlyhanie získania zámku.
3. Keď zámok zlyhá, aby ste sa vyhli efektu roja, musíte získať predchádzajúci uzol aktuálneho uzla a potom ho počúvať.
4. Keď to urobíte, po uvoľnení zámku upozorníte aj ďalší uzol.
 Prenajímateľ| Zverejnené 20. 3. 2018 16:54:46 |
Vopred sa dozviete o stave ošetrovateľov a typoch udalostí.


Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com