Sulkusuunnittelu
Saat lukon toteutusidean: 1. Aloita luomalla hakemisto lukkoksi (znode), jota yleensä käytetään kuvaamaan lukittua entiteettiä, nimeltään :/lock_node 2. Asiakas, joka haluaa saada lukon, luo znoden lukitushakemistoon lukon/lock_node:n lapsisolmuna, ja solmutyyppi on Ordered Temporary Node (EPHEMERAL_SEQUENTIAL); Esimerkiksi kaksi asiakasta luovat znodeja, /lock_node/lock-1 ja /lock_node/lock-2 3. Nykyinen asiakasohjelma kutsuu getChildren(/lock_node) saadakseen kaikki lukitushakemiston lapsisolmut ilman watch-asetusta, ja sitten hakee ne velkisolmut, jotka ovat pienempiä kuin hän itse (luotu vaiheessa 2). 4. Solmu, joka on pienempi kuin itsensä vaiheessa 3, ei ole olemassa && pienin solmu on sama kuin vaiheessa 2 luotu, mikä tarkoittaa, että nykyinen asiakassekvenssinumero on pienin, saa lukon ja lopetetaan. 5. Asiakas seuraa järjestelmällisen väliaikaisen solmun tilaa, joka on seuraavaksi pienin itsestään 6. Jos valvotun alisolmun tila muuttuu, hypätään vaiheeseen 3 ja jatka seurantatoimintoja, kunnes lukituskilpailu päättyy.
Kirjoittaja ei esittele jakelulukkoa tässä, katsotaanpa koko koodisuunnittelun kaaviota seuraavasti
|