Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 50989|Отговор: 2

[Източник] .NET Core реализира разпределени заключвания, базирани на Redis Lua [с изходен код]

[Копирай линк]
Публикувано на 2021-5-9 21:11:18 | | | |
Сценарии на приложение на разпределени заключвания: С развитието на услугите отделните приложения се превръщат в клъстери, разпределените заключвания решават работата на различни процеси (нишки) върху един и същ ресурс в паралелни ситуации, а някои услуги трябва да изискват една нишка, за да функционират, например: промени в сумите на депозитите, промени в запасите на стоките и др.

Преглед:

.NET Core реализира разпределен принцип на заключване, базирано на Redis
https://www.itsvse.com/thread-9391-1-1.html

.net/c# Zookeeper разпределена заключваща имплементация [Изходен код]
https://www.itsvse.com/thread-4651-1-1.html

Redis използва Lua скрипти за подробни обяснения
https://www.itsvse.com/thread-9634-1-1.html

[Реален бой] ASP.NET Core е базиран на разпродажба на Redis с разпределени ключалки
https://www.itsvse.com/thread-9397-1-1.html

В предишната статия "[Практика]ASP.NET ядро базирано на Redis Distributed Lock Flash Kill", когато добавихме заключване, също така активирахме фонова нишка, за да удължим времето за заключване, така че при освобождаването на заключването заключването няма да бъде изтрито по погрешка.

След като научиш Redis да използва Lua скриптове, лесно можеш да използваш скриптове за завършване на заключвания за заетост и освобождаване на заключвания.


Първо, нека разгледаме визуализациите по следния начин:



Първо отворихме 1000 паралелни нишки, за да се състезаваме за заключването, и заключването изтече за 5 секунди.Завършихме 1000 нишки за 5 секунди и само една нишка успешно получи заключванетоСлед 6 секунди изчакване ключалката се освобождава автоматично и можете да видите, че втората задача успешно е получила ключалката и веднага е освободила ключалката, а следващият код успешно е получил ключалката.

Lua скриптът за получаване на заключването е следният:

Lua скриптът за освобождаване на заключването е следният:

Код на интерфейса:

Изтегляне на изходния код:Входът към хиперлинк е видим.

Модифициране на "[Практика] ASP.NET Core базирано на Redis distributed lock flash sale" е реализирано чрез тази статия, а нашият уебсайт я симулира10000 артикула, и след това написа конзола, която симулира времето за HTTP заявкаРазпродаденият билет е завършен за 6 секунди, както е показано на фигурата по-долу:

[Реален бой] ASP.NET Core е базиран на разпродажба на Redis с разпределени ключалки
https://www.itsvse.com/thread-9397-1-1.html



Модифицирайте кода за заявка за тестова симулация:



(Край)




Предишен:Kafka ръчно задава офсетния офсет
Следващ:ASP.NET Core получава пълния URL линк към заявката
Публикувано на 2021-11-4 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:}
Публикувано на 2022-6-11 13:36:33 |
Благодаря благодаря
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com