Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 4002|Antwoord: 2

[Bron] ASP.NET Core (24) is gebaseerd op Refit, MemoryPack high-performance communicatie

[Link kopiëren]
Geplaatst op 30-9-2023 22:10:36 | | | |
Eisen: Op basis van de microservice-architectuur die ASP.NET Core gebruikt, zijn sommige services infrastructuur (basisservices) die vaak met een bepaalde dienst moeten communiceren, waarbij hoge prestaties en lage latentie bijzonder belangrijk zijn.

Het gebruik van het MemoryPack-protocol om data te serialiseren heeft twee voordelen ten opzichte van JSON: snelle serialisatie en kleine overdracht van content, wat de prestaties verbetert.

Recensie:

MessagePack en protobuf-net prestatiebenchmarks
https://www.itsvse.com/thread-10655-1-1.html

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

De interface werd 200.000 keer aangeroepen met MemoryPack en JSON, en de resultaten waren als volgt:



MemoryPack duurt 29.895 milliseconden
JSON doet er 34.283 milliseconden over

Aangezien ik dat benBij lokale test is de kloof niet erg merkbaarWanneer cross-host calls, velden toenemen en het datavolume toeneemt, denk ik dat het gat duidelijker zal zijn.

ASP.NET Core-configuratie ondersteunt het MemoryPack-protocol

Omdat het object wordt geserialiseerd met het MemoryPack-protocol en vervolgens via het HTTP-protocol wordt verzonden, moet ASP.NET Core het MemoryPack-protocol ondersteunen en wordt een nieuwe MemoryPackInputFormatter-klasse aangemaakt, is de code als volgt:

Vervolgens voegt MvcOptions ondersteuning toe voor het MemoryPack-protocol, met de volgende code:

Definieer een transportobject met de volgende UserProfile-code:


De controllermethode voegt een interface toe met de volgende code:

De console gebruikt Refit om HTTP-verzoeken te verzenden

Een consoleapplicatie gebruikt MemoryPack om objecten te serialiseren en HTTP-verzoeken naar interfaces te sturen, met de volgende code:

De test is als volgt:



Wanneer MemoryPackSerializer wordt gebruikt om een object te serialiseren, geeft de volgende code een foutmelding:


System.Object is niet geregistreerd in deze provider

Het zou een MemoryPack-bug moeten zijn, aangepast als volgt:

(Einde)





Vorig:Windows 11 Bestandsverkenner hapert, vastzittende oplossing
Volgend:.NET/C# nieuw type feature-record
 Huisbaas| Geplaatst op 1-10-2023 08:06:35 |
System.Object is niet geregistreerd in deze provider

Dit probleem is een probleem met Refit, als volgt:




 Huisbaas| Geplaatst op 31-12-2024 21:47:28 |
Download het bestand met Refit om een responsflow te krijgen (Opmerking:De gehele gedownloade bestandsstroom wordt niet in het geheugen geladen



Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com