Først, følgende to artikler om .net/c# Zookeeper-distribuerte låser:
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Faktisk er de to ovennevnte artiklene feil! Fullstendig misvisende programmeringsutviklere!
OmInstallasjonsveiledning for Zookeeper:
Implementeringsprinsippet for Zookeeper distribuert lås forklares på en enkel måte:
1: Få alle barnenodene under skapet
2: Alle undernoder er sortert, her er to situasjoner
Hvis noden din har det minste serienummeret, anses klienten å ha fått tak i låsen. Du kan gjøre din egen greie! Hvis noden din ikke har det minste serienummeret, er ikke noden som lytter til den minste noden den forrige noden som er mindre enn deg!! Følg med her! (Fordi, din forrige node kan gå ut og slippe låsen!) )
3: Vent på Zookeeper-varslingen, og gjenta deretter operasjonen til 2, trekk ut alle noder, sorter dem, og vurder om du er den minste noden............
Når vi kjenner prinsippet, la oss se på hvorfor de to øverste innledningene i artikkelen er feil?
Når man ser på eksempelet med rekkefølgen i artikkelen, føles det riktig, og resultatet etter å ha kjørt er også riktig! Men hvis du tester det noen ganger, vil du vite at koden i artikkelen er helt feil!!!
Så, med prinsippet kjent, la oss skrive det selv! Uansett, det er ikke første gang jeg har blitt utsatt for kode på Internett!
Her er riktig gif:
Anropskode:
Den ZooKeeperNet.dll versjonen som brukes er 3.4.6.1
Til slutt, legg ved kildekoden:
Turister, hvis dere vil se det skjulte innholdet i dette innlegget, vær så snill Svare
|