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

Bekijken: 163142|Antwoord: 27

[.NET Core] [Echte gevechten] ASP.NET Core is gebaseerd op Redis distributed lock flash sale

[Link kopiëren]
Geplaatst op 26-09-2020 15:34:26 | | | |
De eerder geschreven zk-gebaseerde gedistribueerde vergrendeling is als volgt:

.net/c# Zookeeper Distributed Lock-implementatie [Broncode]
https://www.itsvse.com/thread-4651-1-1.html
Redis implementeert het principe van gedistribueerde vergrendeling:

.NET Core implementeert het parsen van het distributed lock-principe op basis van Redis
https://www.itsvse.com/thread-9391-1-1.html
Het principe van het implementeren van gedistribueerde sloten in Redis is om het SETNX-commando van redis aan te roepen, en als de sleutel al bestaat, doet het SETNX-commando niets. Het commando geeft 1 terug wanneer de instelling slaagt en 0 wanneer de instelling faalt.


Eerst simuleert onze website 10.000 producten en schrijft vervolgens een console die een HTTP-verzoek simuleert, wat 40 seconden duurt om de aankoop te voltooien; de rendering is als volgt:



Maak een nieuwe website aan ASP.NET Core 3.1, en het redis lock-pakket is als volgt:

Ik zag dat veel release-locks op het internet als volgt zijn geschreven:

Het lijkt echter alsof er een probleem kan zijn; in het geval van gelijktijdigheid is het mogelijk om op het moment van het vonnis true terug te geven, het is inderdaad een vergrendeling die op zichzelf is toegevoegd, maar wanneer de vergrendeling wordt verwijderd, kan deze in zijnIn extreme gevallen, de lock is verkregen door een andere thread, voor het geval de lock van iemand anders wordt verwijderd.

Daarom moet je bij het verkrijgen van een slot een draad openen om de houdbaarheid van het slot te verlengen.

De WeatherForecastController-interface is als volgt:


Je kunt de API-website starten via de commandoregel, die eenvoudig opnieuw kan worden opgestart, als volgt:



Maak een nieuw .NET Core-mockup HTTP-verzoek aan voor snap-aankoop, de code is als volgt:


Als er iets mis is, bedankt voor het corrigeren.

Voeg tenslotte de broncode bij:

Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieftAntwoord





Vorig:JS past zich aan aan de carrouselgrafiek van schermgrootte
Volgend:Deze gedetailleerde uitleg van Javascript
 Huisbaas| Geplaatst op 09-05-2021 21:12:58 |
Websitesimulaties hebben10.000 items, en schreef vervolgens een console om de HTTP-verzoektijd te simuleren De uitverkochte wedstrijd is in 6 seconden voltooid


.NET Core implementeert gedistribueerde sloten gebaseerd op Redis Lua [met broncode]
https://www.itsvse.com/thread-9642-1-1.html


Geplaatst op 05-11-2023 11:02:52 |
Kijk naar Console.WriteLine($"Rush Geslaagd: {safeInstanceSucceededCount}, Mislukt: {safeInstanceFailedCount}, Uitverkocht: {safeInstanceDoneCount}");
 Huisbaas| Geplaatst op 27-04-2021 11:17:53 |
Er zijn enkele problemen met de code, en de taakblokkering zou await Task.Delay(i) moeten gebruiken;  , gebruik geen slaap
Geplaatst op 27-09-2020 14:13:33 |
Mark, Mark, Mark
Geplaatst op 05-10-2020 11:12:20 |
Mark Mark Mark
Geplaatst op 02-11-2020 15:39:13 |
DFDSFDSFDSFDS
Geplaatst op 05-11-2020 10:08:13 |
Broncode is nodig hahahahahahahaha
Geplaatst op 02-12-2020 15:11:30 |
Bedankt voor het delen.
Geplaatst op 07-12-2020 21:10:03 |
[Echte gevechten] ASP.NET Core is gebaseerd op Redis distributed lock flash sale
Geplaatst op 09-12-2020 17:17:34 |
Bekijk het daadwerkelijke effect en de broncode.
Geplaatst op 20-01-2021 15:17:50 |
Dank je, dank je, dank je, dank je
Geplaatst op 26-01-2021 16:10:46 |
MARK MARK MARK MARK
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