Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 Core Based on Redis Distributed Lock Flash Kill» при добавлении блокировки мы также включили фоновый поток для продления времени блокировки, чтобы при снятии блокировки блокировка блокировка не была ошибочно удалена.

После изучения использования Lua-скриптов в Redis вы легко можете использовать скрипты для завершения захвата и освобождения замков.


Сначала давайте рассмотрим визуализации следующим образом:



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

Скрипт lua для получения замка следующий:

Скрипт lua для снятия замка следующий:

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

Скачать исходный код:Вход по гиперссылке виден.

Модификация «[Практика] ASP.NET Core на основе распродажи распределённых замков Redis» реализована с использованием этой статьи, и наш сайт это имитирует10000 единиц, а затем написал консоль для имитации времени запроса HTTPАншлаг завершён за 6 секунд, как показано на рисунке ниже:

[Реальные бои] ASP.NET Core основан на распродаже Redis с распределёнными флэш-распродажами
https://www.itsvse.com/thread-9397-1-1.html



Измените код запроса тестового моделирования:



(Конец)




Предыдущий:Kafka вручную устанавливает смещение
Следующий:ASP.NET Core получает полную ссылку на запрос
Опубликовано 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