Anvendelsesscenarier for distribuerede låse: Med udviklingen af tjenester bliver enkelte applikationer til klynger, distribuerede låse løser driften af forskellige processer (tråde) på samme ressource i samtidige situationer, og nogle tjenester skal kræve en enkelt tråd for at fungere, for eksempel: ændringer i depositum, ændringer i varelager osv.
Anmeldelse:
I den tidligere artikel "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", da vi tilføjede en lås, aktiverede vi også en baggrundstråd for at forlænge låsetiden, så låsen ikke bliver slettet, når låsen frigives.
Efter at have lært Redis at bruge Lua-scripts, kan du nemt bruge scripts til at fuldføre occupancy-låse og frigøre låse.
Lad os først se på renderingerne som følger:
Vi åbnede først 1000 parallelle tråde for at konkurrere om låsen, og låsen udløb i 5 sekunder.Vi gennemførte 1000 tråde på 5 sekunder, og kun 1 tråd fik låsenEfter at have ventet i 6 sekunder, bliver låsen automatisk frigivet, og du kan se, at den anden opgave har opnået låsen og straks frigivet låsen, og den efterfølgende kode har opnået låsen.
Lua-scriptet til at få låsen er som følger:
Lua-scriptet til at frigøre låsen er som følger:
Interface-kode:
Kildekode-download:Hyperlink-login er synlig.
Ændr "[Practice] ASP.NET Core baseret på Redis distributed lock flash sale" er implementeret i denne artikel, og vores hjemmeside simulerer det10.000 genstande, og skrev derefter en konsol til at simulere HTTP-anmodningstidenDet udsolgte spil er færdigt på 6 sekunder, som vist i figuren nedenfor:
Ændr testsimuleringsanmodningskoden:
(Slut)
|