Varem kirjutatud zk-põhine hajutatud lukk on järgmine:
Redis rakendab hajutatud lukustamise põhimõtet:
Redis'is jaotatud lukkude rakendamise põhimõte on kutsuda redis'i SETNX käsk, ja kui võti juba eksisteerib, siis SETNX käsk ei tee midagi. Käsk tagastab väärtuse 1, kui seade õnnestub, ja 0, kui seade ebaõnnestub.
Esiteks simuleerib meie veebileht 10 000 toodet ja seejärel kirjutab konsooli, mis simuleerib HTTP-päringut, mille ostu lõpetamiseks kulub 40 sekundit, renderdamine on järgmine:
Loo uus veebileht Core 3.1 ASP.NET ja redis lock pakett on järgmine:
Nägin, et paljud interneti vabastamislukud on kirjutatud järgmiselt:
Siiski tundub, et võib olla probleem – paralleelsuse puhul on võimalik tõe tagastada otsuse tegemise hetkel, see on tõepoolest lukk iseenesest, kuid kui lukk kustutatakse, võib see ollaÄärmuslikel juhtudel, lukk on saadud teise lõime kaudu, juhuks kui kellegi teise lukk kustutatakse.
Seetõttu tuleb luku saamiseks avada keerme, et pikendada luku aegumisaega.
WeatherForecastControlleri liides on järgmine:
API veebilehte saab käivitada käsurea kaudu, mida saab hõlpsasti taaskäivitada järgmiselt:
Loo uus .NET Core maketi HTTP-päring snap ostuks, kood on järgmine:
Kui midagi on valesti, aitäh parandamast.
Lõpuks lisa lähtekood:
Turistid, kui soovite näha selle postituse peidetud sisu, palun Vastuse
|