Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 9508|Svar: 2

Zookeeper distribuerad låsimplementering

[Kopiera länk]
Publicerad på 2018-03-20 16:23:52 | | | |
Låsdesign

  Få idén om låsimplementering:
1. Börja med att skapa en katalog som ett lås (znode), vilket vanligtvis används för att beskriva den låsta entiteten, kallad :/lock_node
2. Klienten som vill få låset skapar en znode i låskatalogen som en barnnod till låset/lock_node, och nodtypen är Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
Till exempel skapar två klienter znoder, /lock_node/lock-1 och /lock_node/lock-2
3. Den nuvarande klienten anropar getChildren(/lock_node) för att hämta alla barnnoder i låskatalogen, utan att sätta watch, och sedan hämta de brornoder som är mindre än sig själv (skapad i steg 2).
4. Noden som är mindre än sig själv i steg 3 existerar inte och den minsta noden är densamma som den som skapades i steg 2, vilket indikerar att det aktuella klientsekvensnumret är det minsta, få låset och slut.
5. Klienten övervakar tillståndet för den ordnade tillfälliga noden som är näst minsta efter sig själv
6. Om statusen för den övervakade undernoden ändras, hoppa till steg 3 och fortsätt uppföljningsoperationerna tills låsracet är avslutat.     

Författaren kommer inte att införa distributionslåset här, låt oss titta på flödesschemat för hela koddesignen enligt följande.





Föregående:Detaljerad förklaring av AutoResetEvent i .net/c#
Nästa:Angående problemet att Android 7.0 inte kan utföra https-paketfångst
 Hyresvärd| Publicerad på 2018-03-20 16:49:35 |
Zookeeper delade ut låssteg:
1. Zookeeper är en nod med noder, liknande en filkatalog, så vi abstraherar låset till en katalog, Zookeeper har en nod av EPHEMERAL_SEQUENTIAL typer, flera trådar och när noden skapas av Zookeeper hjälper det oss att ordna skapan, så katalogerna under denna nod är sekventiella.
2. Hämta den minsta noden i den aktuella katalogen, avgör om den minsta noden är den aktuella noden, om det betyder att låset är lyckat, om det inte är låsförvärvsmisslyckandet.
3. När låset fallerar, för att undvika svärmeffekten, måste du få fram föregående nod för den aktuella noden och sedan lyssna på noden.
4. När du gör detta, när du släpper låset, kommer du också att meddela nästa nod.
 Hyresvärd| Publicerad på 2018-03-20 16:54:46 |
Lär dig om djurskötarstatus och evenemangstyper i förväg.


Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com