Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 50989|Répondre: 2

[Source] .NET Core implémente des verrous distribués basés sur Redis Lua [avec code source]

[Copié le lien]
Publié le 9-05-2021 à 21:11:18 | | | |
Scénarios d’application des verrous distribués : Avec le développement des services, des applications individuelles deviennent des clusters, les verrous distribués résolvent le fonctionnement de différents processus (threads) sur la même ressource dans des situations concurrentes, et certains services doivent nécessiter un seul thread pour fonctionner, par exemple : changements dans les montants des dépôts, changements dans les stocks de marchandises, etc.

Révision:

.NET Core implémente l’analyse syntaxique distribuée du principe de verrou basée sur Redis
https://www.itsvse.com/thread-9391-1-1.html

Implémentation du verrou distribué .net/c# Zookeeper [Code source]
https://www.itsvse.com/thread-4651-1-1.html

Redis utilise des scripts Lua pour des explications détaillées
https://www.itsvse.com/thread-9634-1-1.html

[Combat réel] ASP.NET Core est basé sur la vente flash de verrouillage distribuée Redis
https://www.itsvse.com/thread-9397-1-1.html

Dans l’article précédent « [Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill », lorsque nous avons ajouté un verrou, nous avons également activé un thread en arrière-plan pour prolonger le temps du verrouillage, afin de garantir que, lorsque le verrou est libéré, le verrou occupé par d’autres threads ne soit pas supprimé par erreur.

Après avoir appris Redis à utiliser les scripts Lua, vous pouvez facilement utiliser des scripts pour compléter les verrous d’occupation et libérer les verrous.


Tout d’abord, regardons les rendus comme suit :



Nous avons d’abord ouvert 1000 fils parallèles pour concourir pour le verrou, et le cadenas a expiré pendant 5 secondes.Nous avons terminé 1000 fils en 5 secondes, et un seul fil a réussi à obtenir le verrouAprès avoir attendu 6 secondes, le verrou sera automatiquement libéré, et vous pouvez voir que la seconde tâche a réussi à obtenir le verrou, puis immédiatement libéré le verrou, et que le code suivant a réussi à obtenir le verrou.

Le script lua pour obtenir le verrou est le suivant :

Le script lua pour libérer le verrou est le suivant :

Code de l’interface :

Téléchargement du code source :La connexion hyperlientérée est visible.

Modifier « [Practice] ASP.NET Core basé sur Redis distributed lock flash sale » est implémenté à partir de cet article, et notre site web le simule10 000 articles, puis a écrit une console pour simuler le temps de requête HTTPLe complet affiche complet en 6 secondes, comme montré dans la figure ci-dessous :

[Combat réel] ASP.NET Core est basé sur la vente flash de verrouillage distribuée Redis
https://www.itsvse.com/thread-9397-1-1.html



Modifier le code de demande de simulation de test :



(Fin)




Précédent:Kafka règle manuellement le décalage
Prochain:ASP.NET Core reçoit le lien de demande complète de l’URL
Publié le 4-11-2021 à 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:}
Publié le 11-06-2022 à 13:36:33 |
Merci
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com