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

Widok: 163142|Odpowiedź: 27

[.NET Core] [Rzeczywista walka] ASP.NET Core opiera się na wyprzedaży Redis Distributed Lock Flash Sale

[Skopiuj link]
Opublikowano 26.09.2020 15:34:26 | | | |
Wcześniej zapisany rozproszony zamek oparty na zk wygląda następująco:

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

.NET Core implementuje rozproszone parsowanie zasad blokad oparte na Redis
https://www.itsvse.com/thread-9391-1-1.html
Zasada implementacji rozproszonych zamków w Redis polega na wywołaniu pokomendy SETNX w redis, a jeśli klucz już istnieje, polecenie SETNX nie robi nic. Polecenie zwraca 1, gdy ustawienie się powiodło, i 0, gdy ustawienie się nie powiedzie.


Najpierw nasza strona symuluje 10 000 produktów, a następnie pisze konsolę symulującą żądanie HTTP, które zajmuje 40 sekund na zakończenie zakupu, a renderowanie wygląda następująco:



Stwórz nową stronę internetową ASP.NET Core 3.1, a pakiet blokady Redis wygląda następująco:

Widziałem, że wiele blokad wypuszczających w Internecie jest napisanych następująco:

Jednak wydaje się, że może istnieć problem, w przypadku współbieżności możliwe jest zwrócenie wartości true w momencie wyroku, jest to faktycznie zamek dodany samodzielnie, ale gdy blokada zostanie usunięta, może być wW skrajnych przypadkach, blokada została uzyskana przez inny wątek, na wypadek usunięcia blokady kogoś innego.

Dlatego przy uzyskiwaniu zamka trzeba otworzyć gwint, aby wydłużyć jej czas ważności.

Interfejs WeatherForecastController wygląda następująco:


Możesz uruchomić stronę API przez linię poleceń, którą można łatwo zrestartować, w następujący sposób:



Stwórz nową makętę HTTP .NET Core do zakupu snap, a kod wygląda następująco:


Jeśli coś jest nie tak, dziękuję za poprawkę.

Na koniec dołącz kod źródłowy:

Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszęOdpowiedź





Poprzedni:JS dostosowuje się do wykresu karuzeli wielkości ekranu
Następny:To szczegółowe wyjaśnienie JavaScriptu
 Ziemianin| Opublikowano 09.05.2021 21:12:58 |
Symulacje stron internetowych mają10000 przedmiotów, a następnie napisał konsolę symulującą czas żądania HTTP Wyprzedanie trwa 6 sekund


.NET Core implementuje rozproszone blokady oparte na Redis Lua [z kodem źródłowym]
https://www.itsvse.com/thread-9642-1-1.html


Opublikowano 05.11.2023 11:02:52 |
Spójrz na Console.WriteLine($"Rush Successful: {safeInstanceSuccessedCount}, Failed: {safeInstanceFailedCount}, Sold out: {safeInstanceDoneCount}");
 Ziemianin| Opublikowano 27.04.2021 11:17:53 |
Występują pewne problemy z kodem i blokowanie zadań powinno używać funkcji await Task.Delay(i);  , nie używaj snu
Opublikowano 27.09.2020 14:13:33 |
Mark, mark, mark
Opublikowano 05.10.2020 11:12:20 |
Mark Mark
Opublikowano 02.11.2020 15:39:13 |
dfdsfdsfds
Opublikowano 05.11.2020 10:08:13 |
Potrzebny jest kod źródłowy hahahaha
Opublikowano 02.12.2020 15:11:30 |
Dzięki za podzielenie się.
Opublikowano 07.12.2020 21:10:03 |
[Rzeczywista walka] ASP.NET Core opiera się na wyprzedaży Redis Distributed Lock Flash Sale
Opublikowano 09.12.2020 17:17:34 |
Sprawdź faktyczny efekt i kod źródłowy.
Opublikowano 20.01.2021 15:17:50 |
Dziękuję, dziękuję, dziękuję, dziękuję
Opublikowano 26.01.2021 16:10:46 |
MARK MARK MARK MARK
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