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: 50989|Odpověď: 2

[Zdroj] .NET Core implementuje distribuované zámky založené na Redis Lua [se zdrojovým kódem]

[Kopírovat odkaz]
Zveřejněno 9. 5. 2021 21:11:18 | | | |
Scénáře aplikace distribuovaných zámků: S vývojem služeb se jednotlivé aplikace stávají clustery, distribuované zámky řeší provoz různých procesů (vláken) na stejném zdroji v souběžných situacích a některé služby musí vyžadovat jedno vlákno k provozu, například: změny ve výši vkladů, změny v zásobách komodit atd.

Přezkoumání:

.NET Core implementuje distribuované parsování principů zámků založené na Redisu
https://www.itsvse.com/thread-9391-1-1.html

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

Redis používá písma Lua pro podrobná vysvětlení
https://www.itsvse.com/thread-9634-1-1.html

[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

V předchozím článku "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill" jsme při přidání zámku také povolili vlákno na pozadí, které prodloužilo dobu zámku, aby bylo zajištěno, že po uvolnění zámku nebude zámek obsazený jinými vlákny omylem smazán.

Po naučení se Redis používat Lua skripty můžete snadno použít skripty k dokončení zámků obsazenosti a uvolnění zámků.


Nejprve se podívejme na vizualizace následovně:



Nejprve jsme otevřeli 1000 paralelních závitů, abychom soutěžili o zámek, a zámek vypršel na 5 sekund.Dokončili jsme 1000 vláken za 5 sekund a jen jedno vlákno úspěšně získalo zámekPo 6 sekundách se zámek automaticky uvolní a vidíte, že druhý úkol úspěšně získal zámek, okamžitě ho uvolnil a následující kód úspěšně získal zámek.

Skript lua pro získání zámku je následující:

Lua skript pro uvolnění zámku je následující:

Kód rozhraní:

Stažení zdrojového kódu:Přihlášení k hypertextovému odkazu je viditelné.

Modifikace "[Practice] ASP.NET Core based on Redis distributed lock flash sale" je implementována pomocí tohoto článku a naše webová stránka jej simuluje10000 položek, a poté napsal konzoli pro simulaci času HTTP požadavkuVyprodaný zápas trvá 6 sekund, jak je znázorněno na obrázku níže:

[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



Upravte kód požadavku simulace testu:



(Konec)




Předchozí:Kafka ručně nastavuje offset offset
Další:ASP.NET Core dostává požadavek na plnou URL linku
Zveřejněno 4. 11. 2021 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:}
Zveřejněno 11. 6. 2022 13:36:33 |
Děkuji, děkuji
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