Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 50989|Odpowiedź: 2

[Źródło] .NET Core implementuje rozproszone blokady oparte na Redis Lua [z kodem źródłowym]

[Skopiuj link]
Opublikowano 9.05.2021 21:11:18 | | | |
Scenariusze zastosowań rozproszonych blokad: Wraz z rozwojem usług pojedyncze aplikacje stają się klastrami, rozproszone blokady rozwiązują działanie różnych procesów (wątków) na tym samym zasobu w równoległych sytuacjach, a niektóre usługi muszą wymagać jednego wątku do działania, na przykład: zmiany w kwotach depozytów, zmiany w zapasach towarowych itd.

Recenzja:

.NET Core implementuje rozproszone parsowanie zasad blokad oparte na Redis
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Implementacja rozproszonego zamka Zookeeper [Kod źródłowy]
https://www.itsvse.com/thread-4651-1-1.html

Redis używa pisma Lua do szczegółowych wyjaśnień
https://www.itsvse.com/thread-9634-1-1.html

[Rzeczywista walka] ASP.NET Core opiera się na wyprzedaży Redis Distributed Lock Flash Sale
https://www.itsvse.com/thread-9397-1-1.html

W poprzednim artykule "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill", gdy dodaliśmy blokadę, włączyliśmy także wątek w tle, aby wydłużyć czas blokady, aby zapewnić, że po zwolnieniu blokady blokada zajmowana przez inne wątki nie zostanie przypadkowo usunięta.

Po nauczeniu się Redis korzystania ze skryptów Lua, możesz łatwo używać skryptów do zamykania blokad i odblokowywania blokad.


Najpierw przyjrzyjmy się tym wizualizacjom w następujący sposób:



Najpierw otworzyliśmy 1000 równoległych gwintów, by konkurować o zamek, a zamek wygasł na 5 sekund.Ukończyliśmy 1000 wątków w 5 sekund i tylko jeden wątek skutecznie zdobył zamekPo 6 sekundach zamek zostanie automatycznie zwolniony i zobaczysz, że drugie zadanie pomyślnie zdobyło zamek i natychmiast go zwolniło, a następny kod skutecznie go uzyskał.

Skrypt lua do uzyskania blokady wygląda następująco:

Skrypt lua do zwalniania blokady wygląda następująco:

Kod interfejsu:

Pobranie kodu źródłowego:Logowanie do linku jest widoczne.

Modyfikacja "[Practice] ASP.NET Core based on Redis distributed lock flash sale" jest implementowana na podstawie tego artykułu, a nasza strona internetowa to symuluje10000 przedmiotów, a następnie napisał konsolę symulującą czas żądania HTTPWyprzedanie trwa 6 sekund, jak pokazano na poniższym rysunku:

[Rzeczywista walka] ASP.NET Core opiera się na wyprzedaży Redis Distributed Lock Flash Sale
https://www.itsvse.com/thread-9397-1-1.html



Zmodyfikuj kod żądania symulacji testu:



(Koniec)




Poprzedni:Kafka ręcznie ustawia offset offset
Następny:ASP.NET Core otrzymuje pełny link URL z żądaniem
Opublikowano 2021-11-4 o 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:}
Opublikowano 2022-6-11 o 13:36:33 |
Dziękuję, dziękuję
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com