Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 163142|Відповідь: 27

[.NET Core] [Реальний бій] ASP.NET Core базується на розподіленому розпродажі замків Redis

[Копіювати посилання]
Опубліковано 26.09.2020 15:34:26 | | | |
Раніше написаний розподілений замок на основі zk виглядає так:

.net/c# Реалізація розподіленого блокування Zookeeper [Вихідний код]
https://www.itsvse.com/thread-4651-1-1.html
Redis реалізує принцип розподіленого блокування:

.NET Core реалізує розподілений принцип блокування на основі Redis
https://www.itsvse.com/thread-9391-1-1.html
Принцип реалізації розподілених блокувань у Redis полягає у виклику команди SETNX redis, і якщо ключ уже існує, команда SETNX нічого не виконує. Команда повертає 1, коли налаштування успішне, і 0, коли налаштування не спрацьовує.


Спочатку наш вебсайт імітує 10 000 продуктів, а потім пише консольний HTTP-запит, який займає 40 секунд для завершення покупки, рендеринг виглядає так:



Створіть новий вебсайт ASP.NET Core 3.1, і пакет redis lock виглядає так:

Я бачив, що багато блокувань звільнення в Інтернеті написані так:

Однак здається, що може виникнути проблема: у випадку паралелізму можливо повернути true у момент судження, це дійсно блокування, додане самостійно, але коли блокування видаляється, воно може бути вУ крайніх випадках, блокування отримано через іншу тему, на випадок, якщо блокування чиєїсь іншої буде видалено.

Тому при отриманні блокування потрібно відкрити потік, щоб продовжити термін дії замка.

Інтерфейс WeatherForecastController виглядає так:


Ви можете запустити вебсайт API через командний рядок, який легко перезапустити, наступним чином:



Створіть новий макет HTTP-запиту .NET Core для швидкої покупки, код виглядає так:


Якщо щось не так, дякую, що виправили.

Нарешті, додайте вихідний код:

Туристи, якщо ви хочете побачити прихований контент цього допису, будь ласкаВідповідь





Попередній:JS адаптується до графа каруселі розміру екрану
Наступний:Це детальне пояснення JavaScript
 Орендодавець| Опубліковано 09.05.2021 21:12:58 |
Веб-симуляції мають10000 предметів, а потім написав консоль для імітації часу HTTP-запиту Аншлаг завершується за 6 секунд


.NET Core реалізує розподілені блокування на базі Redis Lua [з вихідним кодом]
https://www.itsvse.com/thread-9642-1-1.html


Опубліковано 05.11.2023 11:02:52 |
Погляньте на Console.WriteLine($"Rush Successful: {safeInstanceSuccessedCount}, Failed: {safeInstanceFailedCount}, Sold out: {safeInstanceDoneCount}");
 Орендодавець| Опубліковано 27.04.2021 11:17:53 |
Є деякі проблеми з кодом, і блокування завдань має очікувати Task.Delay(i);  , не користуйся сном
Опубліковано 27.09.2020 14:13:33 |
Марк, марк, марк
Опубліковано 05.10.2020 11:12:20 |
Марк Марк Марк
Опубліковано 02.11.2020 15:39:13 |
dfdsfdsfds
Опубліковано 05.11.2020 10:08:13 |
Потрібен вихідний код, хахаха
Опубліковано 02.12.2020 15:11:30 |
Дякую, що поділилися.
Опубліковано 07.12.2020 21:10:03 |
[Реальний бій] ASP.NET Core базується на розподіленому розпродажі замків Redis
Опубліковано 09.12.2020 17:17:34 |
Подивіться на реальний ефект і вихідний код.
Опубліковано 20.01.2021 15:17:50 |
Дякую, дякую, дякую, дякую
Опубліковано 26.01.2021 16:10:46 |
МАРК МАРК МАРК МАРК МАРК
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com