Blocajul distribuit bazat pe zk, scris anterior, este următorul:
Redis implementează principiul blocării distribuite:
Principiul implementării blocajelor distribuite în Redis este să apelezi comanda SETNX de la redis, iar 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ă.
În primul rând, site-ul nostru simulează 10.000 de produse, apoi scrie o consolă care simulează o cerere HTTP, care durează 40 de secunde pentru a finaliza achiziția, randarea fiind următoarea:
Creează un nou site web ASP.NET Core 3.1, iar pachetul de blocare redis este următorul:
Am văzut că multe lacăte de lansare pe Internet sunt scrise astfel:
Totuși, pare că ar putea exista o problemă; în cazul concurenței, este posibil să se returneze adevărat la momentul hotărârii, este într-adevăr un blocaj adăugat de unul singur, dar când blocajul este șters, poate fi înÎn cazuri extreme, blocarea a fost obținută de un alt fir de discuție, în cazul în care blocarea altcuiva este ștearsă.
Prin urmare, când obții o lacăt, trebuie să deschizi un fir pentru a prelungi timpul de expirare al lacătului.
Interfața WeatherForecastController este următoarea:
Poți începe site-ul API prin linia de comandă, care poate fi repornită ușor, astfel:
Creează o nouă cerere HTTP mockup .NET Core pentru achiziție rapidă, codul este următorul:
Dacă este ceva în neregulă, mulțumesc că l-ai corectat.
În final, atașează codul sursă:
Turiști, dacă vreți să vedeți conținutul ascuns al acestei postări, vă rog Răspunde
|