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

Ansehen: 4002|Antwort: 2

[Quelle] ASP.NET Core (24) basiert auf Refit, MemoryPack Hochleistungskommunikation

[Link kopieren]
Veröffentlicht am 30.9.2023, 22:10:36 | | | |
Anforderungen: Basierend auf der von ASP.NET Core verwendeten Microservice-Architektur sind einige Services Infrastruktur (Basisdienste), die häufig mit einem bestimmten Dienst kommunizieren müssen, wobei hohe Leistung und geringe Latenz besonders wichtig sind.

Die Nutzung des MemoryPack-Protokolls zur Serialisierung von Daten hat zwei Vorteile gegenüber JSON: schnelle Serialisierung und eine kleine Übertragung von Inhalten, was die Leistung verbessert.

Rezension:

MessagePack- und protobuf-net-Leistungsbenchmarks
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, Protocol Buffers Serialisierungsvergleich
https://www.itsvse.com/thread-4675-1-1.html

Die Schnittstelle wurde 200.000 Mal mit MemoryPack und JSON aufgerufen, und die Ergebnisse waren wie folgt:



MemoryPack benötigt 29.895 Millisekunden
JSON benötigt 34.283 Millisekunden

Da ich es binLokaler Test, die Lücke ist nicht sehr auffälligWenn Cross-Host-Anrufe, Felder steigen und das Datenvolumen steigt, glaube ich, dass die Lücke offensichtlicher wird.

ASP.NET Core-Konfiguration unterstützt das MemoryPack-Protokoll

Da das Objekt mit dem MemoryPack-Protokoll serialisiert und dann über das HTTP-Protokoll gesendet wird, muss ASP.NET Core das MemoryPack-Protokoll unterstützen und eine neue MemoryPackInputFormatter-Klasse erstellt wird, sieht der Code wie folgt aus:

Dann fügt MvcOptions Unterstützung für das MemoryPack-Protokoll hinzu, mit folgendem Code:

Definiere ein Transportobjekt mit folgendem UserProfile-Code:


Die Controller-Methode fügt eine Schnittstelle mit folgendem Code hinzu:

Die Konsole verwendet Refit, um HTTP-Anfragen zu senden

Eine Konsolenanwendung verwendet MemoryPack, um Objekte zu serialisieren und HTTP-Anfragen an Schnittstellen zu senden, mit folgendem Code:

Der Test ist wie folgt:



Wenn man MemoryPackSerializer verwendet, um ein Objekt zu serialisieren, liefert der folgende Code einen Fehler:


System.Object ist nicht in diesem Anbieter registriert

Es sollte ein MemoryPack-Fehler sein, der wie folgt modifiziert wurde:

(Ende)





Vorhergehend:Windows 11 File Explorer ruckelt, festgefahrene Lösung
Nächster:.NET/C# neuer Feature-Datensatz
 Vermieter| Veröffentlicht am 1.10.2023 08:06:35 |
System.Object ist nicht in diesem Anbieter registriert

Dieses Problem ist ein Problem mit Refit, wie folgt:




 Vermieter| Veröffentlicht am 31.12.2024, 21:47:28 |
Laden Sie die Datei mit Refit herunter, um einen Antwortfluss zu erhalten (Hinweis:Der gesamte heruntergeladene Dateistrom wird nicht in den Speicher geladen



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