Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 34174|Răspunde: 5

[.NET Core] .NET Core implementează analiza principiului de blocare distribuită bazată pe Redis

[Copiază linkul]
Postat pe 22.09.2020 09:17:22 | | | |
În scenarii de afaceri, operațiunile simultane ale conținutului, cum ar fi inventarul de mărfuri, același fișier etc., nu sunt permise, iar aplicația programului este implementată pe mai multe servere.
[Luptă propriu-zisă] ASP.NET Core se bazează pe vânzarea flash a lacătei distribuite Redis
https://www.itsvse.com/thread-9397-1-1.html

Blocajul distribuit bazat pe zk, scris anterior, este următorul:

.net/c# Implementarea blocării distribuite Zookeeper [Cod sursă]
https://www.itsvse.com/thread-4651-1-1.html

Ce trebuie să știi și pentru a citi acest articol:

Volatil vs. Interblocat vs. încuietoare
https://www.itsvse.com/thread-5023-1-1.html

C# Calcul paralel Paralel.For&Parallel.For
https://www.itsvse.com/thread-3671-1-1.html

.NET Core implementează blocaje distribuite bazate pe RedisPrincipiul este să apelăm comanda SETNX a redis, dacă cheia există deja, comanda SETNX nu face nimic. Comanda returnează 1 când setarea reușește și 0 când setarea eșuează.

Autentificarea cu hyperlink este vizibilă.

Creează un nou proiect de consolă .NET Core 3.1, adaugă o referință la StackExchange.Redis și folosește comanda nuget după cum urmează:

Numim metoda StringSet a bibliotecii, prin codul sursă StackExchange.Redis putem vedea că metoda StringSet va chema metoda privată GetStringSetMessage pentru a executa diferite comenzi de set prin valoarea de enumerare a când, codul este următorul:

Executăm comanda SETNX de 2000 de ori printr-un apel paralel de test către program, care se execută în 2 etape, în care valabilitatea cache-ului cheii este de 5 secunde, adică cheia va fi eliberată automat după 5 secunde, adică blocarea va fi eliberată.

Codul este următorul:


După cum puteți vedea, un total de 2 inserții reușite și 1998 de încercări eșuate sunt exact ce ne așteptam, iar randările sunt următoarele:


În acest moment, lacătul nu a fost încă eliberat.
(Sfârșit)









Precedent:Nu am găsit o soluție pentru o parte din traseu "\bin\roslyn\csc.exe"
Următor:EF Core Series 2 cuprinde OnModelCreating, creează indici folosind reflexii și multe altele
 Proprietarul| Postat pe 26.09.2020 15:37:52 |
test123
Postat pe 20.11.2020 11:18:31 |
Dacă există un mediu multi-threaded și unul multi-instanță la implementarea containerelor, există o problemă cu această gestionare?
 Proprietarul| Postat pe 20.11.2020 11:29:44 |
qiuyueming Postat pe 20-11-2020 11:18
Dacă există un mediu multi-threaded și unul multi-instanță la implementarea containerelor, există o problemă cu această gestionare? ...

Multi-instanță înseamnă multi-threading, iar în codul sursă, multi-threaded apelează redis, iar doar un fir primește blocare
Postat pe 22.03.2022 14:32:40 |
Sprijin, sprijin
Postat pe 23.03.2022 11:15:30 |
Află că asta e bine @
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com