Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 9508|Svare: 2

Implementasjon av distribuert lås for Zookeeper

[Kopier lenke]
Publisert på 20.03.2018 16:23:52 | | | |
Låsdesign

  Få idéen om låsimplementering:
1. Start med å opprette en katalog som en lås (znode), som vanligvis brukes til å beskrive den låste enheten, kalt :/lock_node
2. Klienten som ønsker å hente låsen oppretter en znode i låsekatalogen som en barnenode til låsen/lock_node, og nodetypen er Ordered Temporary Node (EPHEMERAL_SEQUENTIAL);
For eksempel lager to klienter znoder, /lock_node/lock-1 og /lock_node/lock-2
3. Den nåværende klienten kaller getChildren(/lock_node) for å hente alle barnenodene i låsekatalogen, uten å sette watch, og deretter hente brornodene som er mindre enn seg selv (opprettet i steg 2).
4. Noden som er mindre enn seg selv i steg 3 eksisterer ikke & den minste noden er den samme som den som ble opprettet i steg 2, noe som indikerer at det nåværende klientsekvensnummeret er det minste, få låsen og avslutt.
5. Klienten overvåker tilstanden til den ordnede midlertidige noden som er den nest minste etter seg selv
6. Hvis statusen til den overvåkede undernoden endres, hopp til trinn 3 og fortsett oppfølgingsoperasjonene til låseløpet er avsluttet.     

Forfatteren vil ikke introdusere distribusjonslåsen her, la oss se på flytskjemaet for hele kodedesignet som følger





Foregående:Detaljert forklaring av AutoResetEvent i .net/c#
Neste:Når det gjelder problemet at Android 7.0 ikke kan utføre https-pakkefangst
 Vert| Publisert på 20.03.2018 16:49:35 |
Zookeeper distribuerte låsetrinn:
1. Zookeeper er en node med noder, lik en filkatalog, så vi abstraherer låsen til en katalog, Zookeeper har en node av EPHEMERAL_SEQUENTIAL typer, flere tråder, og når noden opprettes av Zookeeper, hjelper det oss å ordne rekkefølgen for opprettelse, slik at katalogene under denne noden er sekvensielle.
2. Hent den minste noden i den nåværende katalogen, avgjør om den minste noden er den nåværende noden, hvis det betyr at låsen er vellykket, hvis det ikke er låsanskaffelsesfeilen.
3. Når låsen feiler, for å unngå svermeffekten, må du hente den forrige noden til den nåværende noden, og deretter lytte til noden.
4. Når du gjør dette, vil du også varsle neste node når du slipper låsen.
 Vert| Publisert på 20.03.2018 16:54:46 |
Lær om dyrepasserstatus og arrangementstyper på forhånd.


Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com