Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 34174|Odpoveď: 5

[.NET Core] .NET Core implementuje distribuované parsovanie princípu zámkov na základe Redis

[Kopírovať odkaz]
Zverejnené 22. 9. 2020 9:17:22 | | | |
V obchodných scenároch nie sú povolené súčasné operácie s obsahom, ako je komoditný inventár, ten istý súbor a pod., a programová aplikácia je nasadená na viacerých serveroch.
[Skutočný boj] ASP.NET Core je založený na Redis distribuovanom výpredaji zámkov
https://www.itsvse.com/thread-9397-1-1.html

Predtým napísaný zk-based distributed lock je nasledovný:

.net/c# Implementácia distribuovaného zámku Zookeeper [Zdrojový kód]
https://www.itsvse.com/thread-4651-1-1.html

Čo tiež potrebujete vedieť, aby ste si prečítali tento článok:

Volatile vs. Interlocked vs. lock
https://www.itsvse.com/thread-5023-1-1.html

C# Paralelný výpočet Parallel.For&Parallel.For
https://www.itsvse.com/thread-3671-1-1.html

.NET Core implementuje distribuované zámky založené na RedisPrincíp spočíva v zavolaní príkazu SETNX v redise, ak kľúč už existuje, príkaz SETNX nič nerobí. Príkaz vráti 1, keď nastavenie uspeje, a 0, keď nastavenie zlyhá.

Prihlásenie na hypertextový odkaz je viditeľné.

Vytvorte nový .NET Core 3.1 konzolový projekt, pridajte referenciu StackExchange.Redis a použite príkaz nuget nasledovne:

Metódu StringSet knižnice voláme prostredníctvom zdrojového kódu StackExchange.Redis, vidíme, že metóda StringSet volá súkromnú metódu GetStringSetMessage na vykonávanie rôznych príkazov množiny pomocou enumeračnej hodnoty , kód je nasledovný:

Príkaz SETNX vykonáme 2000-krát cez paralelné testovacie volanie programu, ktoré sa vykonáva v 2 častiach, pričom platnosť kľúča v cache je 5 sekúnd, teda kľúč sa automaticky uvoľní po 5 sekundách, teda zámok sa uvoľní.

Kód je nasledovný:


Ako vidíte, celkovo 2 úspešné vklady a neúspešné pokusy v roku 1998 sú presne také, aké sme očakávali, a rendery sú nasledovné:


V súčasnosti zámok ešte nebol uvoľnený.
(Koniec)









Predchádzajúci:Nepodarilo sa mi nájsť obchádzku pre časť cesty "\bin\roslyn\csc.exe"
Budúci:EF Core Series 2 zapuzdruje OnModelCreating, vytvára indexy pomocou odrazov a ďalšie
 Prenajímateľ| Zverejnené 26. 9. 2020 15:37:52 |
test123
Zverejnené 20. 11. 2020 11:18:31 |
Ak existuje viacvláknové prostredie a viacinštanciové prostredie pri nasadzovaní kontajnerov, je problém s takýmto spracovaním?
 Prenajímateľ| Zverejnené 20. 11. 2020 11:29:44 |
qiuyueming Zverejnené 2020-11-20 11:18
Ak existuje viacvláknové prostredie a viacinštanciové prostredie pri nasadzovaní kontajnerov, je problém s takýmto spracovaním? ...

Multi-inštancia znamená multi-threading a v zdrojovom kóde viacvláknové volá redis a len jedno vlákno dostane zámok
Zverejnené 22. 3. 2022 14:32:40 |
Podpora, podpora
Zverejnené 23. 3. 2022 11:15:30 |
Nauč sa, toto je dobré @
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com