Først følger følgende to artikler om .net/c# Zookeeper-distribuerede låse:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Faktisk er de to ovenstående artikler forkerte! Fuldstændig vildledende programmeringsudviklere!
OmZookeeper installationsvejledning:
Implementeringsprincippet for Zookeeper distribueret lås forklares i enkle vendinger:
1: Få alle børnenoder under skabet
2: Alle undernoder er sorteret, her er to situationer
Hvis din node har det mindste serienummer, anses klienten for at have opnået låsen. Du kan gøre dit eget! Hvis din node ikke har det mindste serienummer, er den node, der lytter til den mindste, ikke den forrige node, der er mindre end dig!! Vær opmærksom her! (Fordi din tidligere node kan gå ud og frigive låsen!) )
3: Vent på Zookeeper-notifikationen, og gentag derefter operationen 2, træk alle noder, sorter dem og vurder, om du er den mindste node............
Når vi kender princippet, lad os se på, hvorfor de to øverste introduktioner i artiklen er forkerte?
Når man ser på eksemplet med rækkefølgen i artiklen, føles det rigtigt, og resultatet efter at have kørt er også korrekt! Men hvis du tester det et par gange, vil du vide, at koden i artiklen er helt forkert!!!
Så, når vi kender princippet, lad os skrive det selv! Under alle omstændigheder er det ikke første gang, jeg er blevet stoppet af kode på internettet!
Her er den korrekte gif:
Opkaldskode:
Den ZooKeeperNet.dll version, der bruges, er 3.4.6.1
Endelig vedhæft kildekoden:
Turister, hvis I vil se det skjulte indhold i dette indlæg, så vær venlig Svar
|