Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 163142|Antwort: 27

[.NET Core] [Tatsächlicher Kampf] ASP.NET Core basiert auf Redis Distributed Lock Flash Sale

[Link kopieren]
Veröffentlicht am 26.09.2020 15:34:26 | | | |
Das zuvor geschriebene zk-basierte verteilte Schloss ist wie folgt:

.net/c# Zookeeper Distributed Lock-Implementierung [Quellcode]
https://www.itsvse.com/thread-4651-1-1.html
Redis setzt das Prinzip der verteilten Sperrung um:

.NET Core implementiert das Parsing des Distributed Lock-Prinzips basierend auf Redis
https://www.itsvse.com/thread-9391-1-1.html
Das Prinzip der Implementierung verteilter Schlösser in Redis besteht darin, den SETNX-Befehl redis aufzurufen, und wenn der Schlüssel bereits existiert, bewirkt der SETNX-Befehl nichts. Der Befehl gibt 1 zurück, wenn die Einstellung erfolgreich ist, und 0, wenn die Einstellung fehlschlägt.


Zuerst simuliert unsere Website 10.000 Produkte und schreibt dann eine Konsole, die eine HTTP-Anfrage simuliert, die 40 Sekunden zum Abschluss des Kaufs benötigt; die Darstellung sieht wie folgt aus:



Erstelle eine neue Website ASP.NET Core 3.1, und das Redis-Lock-Paket sieht wie folgt aus:

Ich habe gesehen, dass viele Release-Locks im Internet wie folgt geschrieben sind:

Allerdings scheint es ein Problem zu geben; im Fall von Nebenläufigkeit ist es möglich, zum Zeitpunkt des Urteils true zurückzugeben, es handelt sich tatsächlich um eine von sich selbst hinzugefügte Sperre, aber wenn die Sperre gelöscht wird, könnte sie inIn extremen Fällen, die Sperre wurde von einem anderen Thread erhalten, falls das Schloss eines anderen gelöscht wird.

Daher muss man beim Erlangen eines Schlosses einen Thread öffnen, um die Ablaufzeit des Schlosses zu verlängern.

Die WeatherForecastController-Schnittstelle ist wie folgt:


Sie können die API-Website über die Kommandozeile starten, die leicht neu gestartet werden kann, wie folgt:



Erstellen Sie eine neue .NET Core-Mockup-HTTP-Anfrage für den Snap-Kauf, der Code lautet wie folgt:


Falls etwas nicht stimmt, danke ich für die Korrektur.

Zum Schluss fügen Sie den Quellcode an:

Touristen, wenn ihr den versteckten Inhalt dieses Beitrags sehen wollt, bitteAntwort





Vorhergehend:JS passt sich an den Bildschirmgrößen-Karussellgraphen an
Nächster:Diese ausführliche Erklärung von Javascript
 Vermieter| Veröffentlicht am 09.05.2021 21:12:58 |
Website-Simulationen haben10.000 Artikel, und schrieb dann eine Konsole, um die HTTP-Anfragezeit zu simulieren Das ausverkaufte Spiel ist in 6 Sekunden abgeschlossen


.NET Core implementiert verteilte Sperren basierend auf Redis Lua [mit Quellcode]
https://www.itsvse.com/thread-9642-1-1.html


Veröffentlicht am 05.11.2023 11:02:52 |
Schau dir Console.WriteLine($"Rush Successful: {safeInstanceSuccessfuledCount}, Failed: {safeInstanceFailedCount}, Sold Out: {safeInstanceDoneCount}");
 Vermieter| Veröffentlicht am 27.04.2021 11:17:53 |
Es gibt einige Probleme mit dem Code, und das Task-Blocking sollte await Task.Delay(i) verwenden;  , benutze keinen Schlaf
Veröffentlicht am 27.09.2020 14:13:33 |
Mark, Mark, Mark
Veröffentlicht am 05.10.2020 11:12:20 |
Mark, Mark, Mark, Mark,
Veröffentlicht am 02.11.2020 15:39:13 |
DFDSFDSFDSFDS
Veröffentlicht am 05.11.2020 10:08:13 |
Quellcode wird benötigt hahahahahahahaha
Veröffentlicht am 02.12.2020 15:11:30 |
Danke fürs Teilen.
Veröffentlicht am 07.12.2020 21:10:03 |
[Tatsächlicher Kampf] ASP.NET Core basiert auf Redis Distributed Lock Flash Sale
Veröffentlicht am 09.12.2020 17:17:34 |
Schau dir den tatsächlichen Effekt und den Quellcode an.
Veröffentlicht am 20.01.2021 15:17:50 |
Danke, danke, danke, danke
Veröffentlicht am 26.01.2021 16:10:46 |
MARK, MARK, MARK, MARK.
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com