Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 4002|Svar: 2

[Källa] ASP.NET Core (24) är baserad på Refit, MemoryPack högpresterande kommunikation

[Kopiera länk]
Publicerad den 2023-9-30 22:10:36 | | | |
Krav: Baserat på mikrotjänstearkitekturen som används av ASP.NET Core är vissa tjänster infrastruktur (grundläggande tjänster) som behöver kommunicera ofta med en viss tjänst, och hög prestanda och låg latens är särskilt viktiga.

Att använda MemoryPack-protokollet för att serialisera data har två fördelar jämfört med JSON: snabb serialisering och liten överföring av innehåll, vilket förbättrar prestandan.

Recension:

MessagePack och protobuf-net prestandabenchmark
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, Protocol Buffers serialiseringsjämförelse
https://www.itsvse.com/thread-4675-1-1.html

Gränssnittet anropades 200 000 gånger med MemoryPack och JSON, och resultaten var följande:



MemoryPack tar 29 895 millisekunder
JSON tar 34 283 millisekunder

Eftersom jag ärLokalt test, gapet är inte särskilt märkbartNär samtal mellan värdar, fält ökar och datavolymen ökar tror jag att gapet blir mer uppenbart.

ASP.NET Core-konfigurationen stöder MemoryPack-protokollet

Eftersom objektet serialiseras med MemoryPack-protokollet och sedan skickas över HTTP-protokollet, behöver ASP.NET Core stödja MemoryPack-protokollet, och en ny MemoryPackInputFormatter-klass skapas, kodens följer:

Därefter lägger MvcOptions till stöd för MemoryPack-protokollet, med följande kod:

Definiera ett transportobjekt med följande UserProfile-kod:


Controller-metoden lägger till ett gränssnitt med följande kod:

Konsolen använder Refit för att skicka HTTP-förfrågningar

En konsolapplikation använder MemoryPack för att serialisera objekt och skicka HTTP-förfrågningar till gränssnitt, med följande kod:

Testet är följande:



När man använder MemoryPackSerializer för att serialisera ett objekt ger följande kod ett fel:


System.Object är inte registrerat hos denna leverantör

Det borde vara en MemoryPack-bugg, modifierad enligt följande:

(Slut)





Föregående:Windows 11 Utforskaren hackar, fast lösning
Nästa:.NET/C# ny funktionsposttyp
 Hyresvärd| Publicerad den 2023-10-1 08:06:35 |
System.Object är inte registrerat hos denna leverantör

Detta problem är ett problem med Refit, enligt följande:




 Hyresvärd| Publicerad den 2024-12-31 21:47:28 |
Ladda ner filen med Refit för att få ett svarsflöde (Obs:Hela den nedladdade filströmmen laddas inte in i minnet



Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com