Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 50989|Svare: 2

[Kilde] .NET Core implementerer distribuerte låser basert på Redis Lua [med kildekode]

[Kopier lenke]
Publisert 9.05.2021 kl. 21:11:18 | | | |
Bruksscenarier for distribuerte låser: Med utviklingen av tjenester blir enkeltapplikasjoner klynger, distribuerte låser løser driften av ulike prosesser (tråder) på samme ressurs i samtidige situasjoner, og noen tjenester må kreve én enkelt tråd for å fungere, for eksempel: endringer i innskuddsbeløp, endringer i varelager, osv.

Anmeldelse:

.NET Core implementerer prinsippparsing av distribuert lås basert på Redis
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Zookeeper distribuert lås-implementering [kildekode]
https://www.itsvse.com/thread-4651-1-1.html

Redis bruker Lua-skript for detaljerte forklaringer
https://www.itsvse.com/thread-9634-1-1.html

[Faktisk kamp] ASP.NET Core er basert på Redis distribuert lås flash-salg
https://www.itsvse.com/thread-9397-1-1.html

I den forrige artikkelen "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", da vi la til en lås, aktiverte vi også en bakgrunnstråd for å forlenge låsetiden, slik at når låsen frigjøres, vil ikke låsen som andre tråder har opptatt bli slettet ved en feil.

Etter å ha lært Redis å bruke Lua-skript, kan du enkelt bruke skript for å fullføre okkupasjonslåser og frigjøre låser.


La oss først se på gjengivelsene som følger:



Vi åpnet først 1000 parallelle gjenger for å konkurrere om låsen, og låsen gikk ut i 5 sekunder.Vi fullførte 1000 tråder på 5 sekunder, og bare én tråd klarte å få låsenEtter å ha ventet i 6 sekunder, vil låsen automatisk bli frigjort, og du kan se at den andre oppgaven har fått låsen, og umiddelbart frigjort låsen, og den påfølgende koden har fått låsen.

Lua-skriptet for å få låsen er som følger:

Lua-skriptet for å frigjøre låsen er som følger:

Grensesnittkode:

Nedlasting av kildekode:Innloggingen med hyperkoblingen er synlig.

Modifiser "[Practice] ASP.NET Core basert på Redis distributed lock flash-salg" er implementert i denne artikkelen, og nettsiden vår simulerer det10 000 gjenstander, og skrev deretter en konsoll for å simulere HTTP-forespørselstidenUtsolgt er ferdig på 6 sekunder, som vist i figuren nedenfor:

[Faktisk kamp] ASP.NET Core er basert på Redis distribuert lås flash-salg
https://www.itsvse.com/thread-9397-1-1.html



Endre koden til testsimuleringsforespørselen:



(Slutt)




Foregående:Kafka setter offset-offset manuelt
Neste:ASP.NET Core får lenken til forespørselens fulle URL.
Publisert 2021-11-4 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:}
Publisert 2022-6-11 13:36:33 |
Takk, takk
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com