Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 9508|Svar: 2

Zookeeper distribueret låseimplementering

[Kopier link]
Opslået på 20/03/2018 16.23.52 | | | |
Låsedesign

  Få idéen til låsimplementering:
1. Start med at oprette en mappe som en lås (znode), som normalt bruges til at beskrive den låste entitet, kaldet :/lock_node
2. Klienten, der ønsker at opnå låsen, opretter en znode i låsemappen som en børnenode til låsen/lock_node, og nodetypen er Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
For eksempel opretter to klienter znoder, /lock_node/lock-1 og /lock_node/lock-2
3. Den nuværende klient kalder getChildren(/lock_node) for at hente alle børnenoder i låsemappen uden at sætte watch, og derefter hente de bror-noder, der er mindre end den selv (oprettet i trin 2).
4. Noden, der er mindre end sig selv i trin 3, eksisterer ikke & den mindste node er den samme som den, der blev oprettet i trin 2, hvilket indikerer, at det nuværende klient-sekvensnummer er det mindste, få låsen og afslutt.
5. Klienten overvåger tilstanden af den ordnede midlertidige node, der er den næstmindste efter sig selv
6. Hvis status for den overvågede undernode ændres, spring til trin 3 og fortsæt opfølgende operationer, indtil låsekapløbet er afsluttet.     

Forfatteren vil ikke introducere distributionslåsen her, lad os se på flowchartet for hele kodedesignet som følger





Tidligere:Detaljeret forklaring af AutoResetEvent i .net/c#
Næste:Vedrørende problemet med, at Android 7.0 ikke kan udføre https pakkefangst
 Udlejer| Opslået på 20/03/2018 16.49.35 |
Zookeeper distribuerede låsetrin:
1. Zookeeper er en node med noder, ligesom en filmappe, så vi abstraherer låsen til en mappe, Zookeeper har en node med EPHEMERAL_SEQUENTIAL typer, flere tråde, og når noden oprettes af Zookeeper, hjælper det os med at arrangere oprettelsen, så mapperne under denne node er sekventielle.
2. Få den mindste node i den aktuelle mappe, afgør om den mindste node er den nuværende node, hvis det betyder, at låsen er succesfuld, hvis det ikke er låseopnåelsesfejlen.
3. Når låsen fejler, for at undgå sværmeffekten, skal du opnå den forrige node for den nuværende node og derefter lytte til noden.
4. Når du gør dette, vil du også give besked til den næste node, når du frigiver låsen.
 Udlejer| Opslået på 20/03/2018 16.54.46 |
Lær om zookeeper-status og eventtyper på forhånd.


Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com