Anwendungsszenarien verteilter Sperren: Mit der Entwicklung von Diensten werden einzelne Anwendungen zu Clustern, verteilte Sperren lösen den Betrieb verschiedener Prozesse (Threads) auf derselben Ressource in gleichzeitigen Situationen, und einige Dienste benötigen einen einzelnen Thread zum Funktionieren, zum Beispiel: Änderungen der Einlagenbeträge, Änderungen im Warenbestand usw.
Rezension:
Im vorherigen Artikel "[Practice]ASP.NET Core Based on Redis Distributed Lock Flash Kill" haben wir beim Hinzufügen eines Locks auch einen Hintergrundthread aktiviert, um die Sperrzeit zu verlängern, um sicherzustellen, dass beim Öffnen der Sperre nicht versehentlich gelöscht wird.
Nachdem du Redis gelernt hast, Lua-Skripte zu verwenden, kannst du Skripte problemlos nutzen, um Belegungsschlösser zu lösen und zu lösen.
Zunächst werfen wir einen Blick auf die Renderings wie folgt:
Zuerst öffneten wir 1000 parallele Gewinde, um um das Schloss zu konkurrieren, und das Schloss lief für 5 Sekunden ab.Wir haben 1000 Threads in 5 Sekunden abgeschlossen, und nur ein Thread hat erfolgreich die Sperre erhaltenNach 6 Sekunden Warten wird das Schloss automatisch freigegeben, und man sieht, dass die zweite Aufgabe das Schloss erfolgreich erreicht hat, es sofort freigegeben hat, und der nachfolgende Code hat das Schloss erfolgreich erreicht.
Das Lua-Skript, um das Lock zu erhalten, ist wie folgt:
Das Lua-Skript zur Aufhebung des Schlosses lautet wie folgt:
Schnittstellencode:
Quellcode-Download:Der Hyperlink-Login ist sichtbar.
Modify "[Practice] ASP.NET Core based on Redis distributed lock flash sale" wird in diesem Artikel implementiert, und unsere Website simuliert es10.000 Artikel, und schrieb dann eine Konsole, um die HTTP-Anfragezeit zu simulierenDas ausverkaufte Spiel ist in 6 Sekunden abgeschlossen, wie in der untenstehenden Abbildung dargestellt:
Ändern Sie den Testsimulationsanforderungscode:
(Ende)
|