Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 50989|Antwoord: 2

[Bron] .NET Core implementeert gedistribueerde sloten gebaseerd op Redis Lua [met broncode]

[Link kopiëren]
Geplaatst op 2021-5-9 21:11:18 | | | |
Toepassingsscenario's van gedistribueerde sloten: Met de ontwikkeling van services worden losse applicaties clusters, lossen gedistribueerde sloten de werking van verschillende processen (threads) op dezelfde resource in gelijktijdige situaties op, en sommige services moeten één thread vereisen om te functioneren, bijvoorbeeld: wijzigingen in depositobedragen, wijzigingen in voorraad grondstoffen, enzovoort.

Recensie:

.NET Core implementeert het parsen van het distributed lock-principe op basis van Redis
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Zookeeper Distributed Lock-implementatie [Broncode]
https://www.itsvse.com/thread-4651-1-1.html

Redis gebruikt Lua-scripts voor gedetailleerde uitleg
https://www.itsvse.com/thread-9634-1-1.html

[Echte gevechten] ASP.NET Core is gebaseerd op Redis distributed lock flash sale
https://www.itsvse.com/thread-9397-1-1.html

In het vorige artikel "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", hebben we, toen we een lock toevoegden, ook een achtergronddraad ingeschakeld om de locktime te verlengen, zodat bij het loslaten van de lock de lock die door andere threads wordt bezet niet per ongeluk wordt verwijderd.

Nadat je Redis hebt geleerd Lua-scripts te gebruiken, kun je gemakkelijk scripts gebruiken om bezettingssloten te voltooien en vergrendelingen te ontgrendelen.


Laten we eerst naar de renderings als volgt kijken:



We openden eerst 1000 parallelle schroefdraadjes om te concurreren om het slot, en het slot liep 5 seconden af.We voltooiden 1000 threads in 5 seconden, en slechts één thread kreeg de lock succesvolNa 6 seconden wachten wordt het slot automatisch losgelaten, en je kunt zien dat de tweede taak het slot succesvol heeft gekregen, het slot direct heeft vrijgegeven, en de volgende code het slot succesvol heeft bereikt.

Het lua-script om het slot te krijgen is als volgt:

Het lua-script om het slot te openen is als volgt:

Interfacecode:

Broncode downloaden:De hyperlink-login is zichtbaar.

Modify "[Practice] ASP.NET Core based on Redis distributed lock flash sale" is geïmplementeerd met dit artikel, en onze website simuleert dit10.000 items, en schreef vervolgens een console om de HTTP-verzoektijd te simulerenDe uitverkochte wedstrijd is in 6 seconden voltooid, zoals getoond in de onderstaande figuur:

[Echte gevechten] ASP.NET Core is gebaseerd op Redis distributed lock flash sale
https://www.itsvse.com/thread-9397-1-1.html



Pas de testsimulatie-verzoekcode aan:



(Einde)




Vorig:Kafka stelt handmatig de offset in
Volgend:ASP.NET Core krijgt de volledige URL van het verzoek
Geplaatst op 4-11-2021 13:50:43 |
{:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:} {:1_1:}
Geplaatst op 2022-6-11 13:36:33 |
Dank je, dank je
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com