Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 50989|Odgovoriti: 2

[Vir] .NET Core implementira distribuirane ključavnice na osnovi Redis Lua [z izvorno kodo]

[Kopiraj povezavo]
Objavljeno 9. 5. 2021 ob 21:11:18 | | | |
Scenariji uporabe porazdeljenih zaklepov: Z razvojem storitev posamezne aplikacije postanejo grozde, porazdeljene ključavnice rešujejo delovanje različnih procesov (niti) na istem viru v sočasnih situacijah, nekatere storitve pa morajo za delovanje zahtevati eno nit, na primer: spremembe zneska depozitov, spremembe zalog blaga itd.

Pregled:

.NET Core implementira porazdeljeno razčlenjevanje principov zaklepanja na osnovi Redis
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Implementacija porazdeljene ključavnice Zookeeper [Izvorna koda]
https://www.itsvse.com/thread-4651-1-1.html

Redis uporablja pisavo Lua za podrobne razlage
https://www.itsvse.com/thread-9634-1-1.html

[Dejanski boj] ASP.NET Core temelji na Redis distributed lock flash sale
https://www.itsvse.com/thread-9397-1-1.html

V prejšnjem članku "[Praksa]ASP.NET jedro na osnovi Redis Distributed Lock Flash Kill" smo ob dodajanju ključavnice omogočili tudi ozadje niti za podaljšanje časa zaklepa, da zagotovimo, da ob sprostitvi ključavnice ne bo pomotoma izbrisana.

Ko se naučiš Redis uporabljati Lua skripte, lahko skripte enostavno uporabiš za dokončanje zasedenosti in sprostitev zaklepov.


Najprej si poglejmo upodobitve takole:



Najprej smo odprli 1000 vzporednih niti, da bi tekmovali za ključavnico, in ključavnica je trajala 5 sekund.V 5 sekundah smo zaključili 1000 niti, in le ena nit je uspešno pridobila ključavnicoPo 6 sekundah čakanja se ključavnica samodejno sprosti in vidite, da je druga naloga uspešno pridobila ključavnico, takoj jo sprostila, nato pa je naslednja koda uspešno pridobila ključavnico.

Lua skripta za pridobitev zaklepa je naslednja:

Lua skripta za sprostitev ključavnice je naslednja:

Uporabniška koda:

Prenos izvorne kode:Prijava do hiperpovezave je vidna.

Sprememba "[Practice] ASP.NET Core na osnovi Redis distributed lock flash sale" je implementirana z uporabo tega članka, naša spletna stran pa jo simulira10000 predmetov, nato pa je napisal konzolo za simulacijo časa HTTP zahteveRazprodan je v 6 sekundah, kot je prikazano na spodnji sliki:

[Dejanski boj] ASP.NET Core temelji na Redis distributed lock flash sale
https://www.itsvse.com/thread-9397-1-1.html



Spremenite kodo zahteve za simulacijo testa:



(Konec)




Prejšnji:Kafka ročno nastavi odmik
Naslednji:ASP.NET Core dobi zahtevo do celotne URL povezave
Objavljeno 4. 11. 2021 ob 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:}
Objavljeno 11. 6. 2022 ob 13:36:33 |
Hvala, hvala
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com