Hajutatud lukkude rakendusstsenaariumid: Teenuste arenguga muutuvad üksikud rakendused klastriteks, hajutatud lukud lahendavad erinevate protsesside (lõimede) toimimise samal ressursil samaaegsetes olukordades ning mõned teenused peavad nõudma ühte lõime, näiteks: hoiuste summade muutused, kaubavarude muutused jne.
Läbivaatamine:
Eelmises artiklis "[Harjuta]ASP.NET Tuum põhineb Redis Distributed Lock Flash Kill'il", lubasime luku lisamisel ka taustalõime, et pikendada lukustusaega, et tagada, et luku vabastamisel ei kustutataks teiste lõimede poolt hõivatud lukku ekslikult.
Pärast seda, kui Redis on õppinud Lua skripte kasutama, saad skriptidega hõlpsasti täita hõivatuslukke ja vabastada lukke.
Esmalt vaatame renderdusi järgmiselt:
Me avasime esmalt 1000 paralleelset lõime, et luku pärast konkureerida, ja lukk aegus 5 sekundiks.Me lõpetasime 1000 lõime 5 sekundiga ja ainult üks lõim suutis luku edukalt kätte saadaPärast 6-sekundilist ootamist vabastatakse lukk automaatselt ning näed, et teine ülesanne on luku edukalt kätte saanud, kohe luku vabastanud ja järgmine kood on luku edukalt kätte saanud.
Lua skript luku saamiseks on järgmine:
Lua skript luku vabastamiseks on järgmine:
Liidese kood:
Lähtekoodi allalaadimine:Hüperlingi sisselogimine on nähtav.
Muuda "[Praktika] ASP.NET Core Redis distributed lock flash müügi põhjal" on selle artikli abil rakendatud ning meie veebileht simuleerib seda10000 eset, ja seejärel kirjutas konsooli, mis simuleerib HTTP päringu aega.Välja müüdud mäng on valmis 6 sekundiga, nagu alloleval joonisel näidatud:
Muuda testisimulatsiooni päringukoodi:
(Lõpp)
|