Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 34174|Odpověď: 5

[.NET Core] .NET Core implementuje distribuované parsování principů zámků založené na Redisu

[Kopírovat odkaz]
Zveřejněno 22.09.2020 9:17:22 | | | |
V obchodních scénářích nejsou povoleny současné operace s obsahem, jako je komoditní inventář, stejný soubor apod., a programová aplikace je nasazena na více serverech.
[Skutečný boj] ASP.NET Core je založen na Redis distribuované výprodeji zámků
https://www.itsvse.com/thread-9397-1-1.html

Dříve napsaný distribuovaný zámek založený na zk je následující:

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

Co byste také měli vědět, abyste si přečetli tento článek:

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

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

.NET Core implementuje distribuované zámky založené na RedisuPrincip spočívá v volání příkazu SETNX v redis., pokud klíč již existuje, příkaz SETNX nic nedělá. Příkaz vrátí 1, když nastavení uspěje, a 0, když nastavení selže.

Přihlášení k hypertextovému odkazu je viditelné.

Vytvořte nový .NET Core 3.1 konzolový projekt, přidejte odkaz na StackExchange.Redis a použijte příkaz nuget následovně:

Metodu StringSet knihovny voláme prostřednictvím zdrojového kódu StackExchange.Redis, kde vidíme, že metoda StringSet volá soukromou metodu GetStringSetMessage pro vykonání různých příkazů sady pomocí enumerační hodnoty , kód je následující:

Příkaz SETNX vykonáme 2000krát prostřednictvím paralelního testovacího volání programu, které se provádí ve 2 částech, přičemž platnost cache klíče je 5 sekund, tedy klíč je automaticky uvolněn po 5 sekundách, tedy zámek je uvolněn.

Kód je následující:


Jak vidíte, celkem 2 úspěšné vložení a neúspěšné pokusy z roku 1998 jsou přesně to, co jsme očekávali, a vizualizace jsou následující:


V tuto chvíli zámek ještě nebyl uvolněn.
(Konec)









Předchozí:Nepodařilo se mi najít řešení pro část cesty "\bin\roslyn\csc.exe"
Další:EF Core Series 2 zapouzdřuje OnModelCreating, vytváří indexy pomocí odrazů a další
 Pronajímatel| Zveřejněno 26.09.2020 15:37:52 |
test123
Zveřejněno 20.11.2020 11:18:31 |
Pokud existuje vícevláknové prostředí a víceinštěrové prostředí při nasazování kontejnerů, je s tímto řešením nějaký problém?
 Pronajímatel| Zveřejněno 20.11.2020 11:29:44 |
qiuyueming Zveřejněno 2020-11-2020 11:18
Pokud existuje vícevláknové prostředí a víceinštěrové prostředí při nasazování kontejnerů, je s tímto řešením nějaký problém? ...

Multi-instance znamená vícevláknové a ve zdrojovém kódu vícevláknové volání volá redis a pouze jedno vlákno má zámek
Zveřejněno 22.03.2022 14:32:40 |
Podpora, podpora
Zveřejněno 23.03.2022 11:15:30 |
Učte se, že je to dobré @
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com