Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 163142|Svar: 27

[.NET Core] [Faktisk strid] ASP.NET Core är baserat på Redis distribuerade låsflash-försäljning

[Kopiera länk]
Publicerad på 2020-09-26 15:34:26 | | | |
Det tidigare skrivna zk-baserade distribuerade låset är följande:

.net/c# Zookeeper distribuerad låsimplementering [källkod]
https://www.itsvse.com/thread-4651-1-1.html
Redis implementerar principen om distribuerad låsning:

.NET Core implementerar principen för distribuerat lås baserat på Redis
https://www.itsvse.com/thread-9391-1-1.html
Principen för att implementera distribuerade lås i Redis är att anropa SETNX-kommandot redis, och om nyckeln redan finns gör SETNX-kommandot ingenting. Kommandot returnerar 1 när inställningen lyckas och 0 när inställningen misslyckas.


Först simulerar vår webbplats 10 000 produkter och skriver sedan en konsol som simulerar HTTP-förfrågan, vilket tar 40 sekunder att slutföra köpet, renderingen är följande:



Skapa en ny webbplats ASP.NET Core 3.1, och redis lock-paketet är följande:

Jag såg att många release-lås på internet är skrivna så här:

Det känns dock som att det kan finnas ett problem, i fallet med samtidighet är det möjligt att returnera true vid domstillfället, det är faktiskt ett lås som lagts till av sig självt, men när låset tas bort kan det finnas iI extrema fall, har låset erhållits av en annan tråd, ifall någon annans lås raderas.

Därför behöver du öppna en tråd när du skaffar ett lås för att förlänga låsets utgångstid.

WeatherForecastController-gränssnittet är följande:


Du kan starta API:s webbplats via kommandoraden, som enkelt kan startas om, enligt följande:



Skapa en ny .NET Core-mockup HTTP-förfrågan för snap-köp, koden är följande:


Om det är något fel, tack för att du rättade till det.

Slutligen, bifoga källkoden:

Turister, om ni vill se det dolda innehållet i detta inlägg, snällaSvar





Föregående:JS anpassar sig till skärmstorlekskarusellgrafen
Nästa:Denna detaljerade förklaring av Javascript
 Hyresvärd| Publicerad på 2021-05-09 21:12:58 |
Webbplatssimuleringar har10 000 föremål, och skrev sedan en konsol för att simulera HTTP-förfrågningstiden Slutsålda är klar på 6 sekunder


.NET Core implementerar distribuerade lås baserade på Redis Lua [med källkod]
https://www.itsvse.com/thread-9642-1-1.html


Publicerad på 2023-11-05 11:02:52 |
Titta på Console.WriteLine($"Rush Successful: {safeInstanceSucceededCount}, Failed: {safeInstanceFailedCount}, Sold Out: {safeInstanceDoneCount}");
 Hyresvärd| Publicerad på 2021-04-27 11:17:53 |
Det finns vissa problem med koden, och Task blocking bör användas await Task.Delay(i);  , använd inte sömn
Publicerad på 2020-09-27 14:13:33 |
Mark, Mark, Mark
Publicerad på 2020-10-05 11:12:20 |
Mark Mark Mark
Publicerad på 2020-11-02 15:39:13 |
DFDSFDSFDS
Publicerad på 2020-11-05 10:08:13 |
Källkod behövs hahahahahahahaha
Publicerad på 2020-12-02 15:11:30 |
Tack för att du delade med dig.
Publicerad på 2020-12-07 21:10:03 |
[Faktisk strid] ASP.NET Core är baserat på Redis distribuerade låsflash-försäljning
Publicerad på 2020-12-09 17:17:34 |
Kolla in den faktiska effekten och källkoden.
Publicerad på 2021-01-20 15:17:50 |
Tack, tack, tack, tack
Publicerad på 2021-01-26 16:10:46 |
MARK MARK MARK MARK
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com