Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 4002|Válasz: 2

[Forrás] ASP.NET Core (24) a Refit, MemoryPack nagy teljesítményű kommunikáción alapul

[Linket másol]
Közzétéve: 2023-9-30 22:10:36 | | | |
Követelmények: A ASP.NET Core által használt mikroszolgáltatás architektúrája alapján néhány szolgáltatás infrastruktúra (alap szolgáltatások), amelyeknek gyakran kell kommunikálniuk egy adott szolgáltatással, és a nagy teljesítmény és az alacsony késleltetés különösen fontos.

A MemoryPack protokoll használatával az adatok sorializálása két előnnyel bír a JSON használatával szemben: gyors serializáció és kis tartalomátvitel, ami javítja a teljesítményt.

Szemle:

MessagePack és protobuf-net teljesítménymérföldek
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, Protokollpufferek serializációs összehasonlítása
https://www.itsvse.com/thread-4675-1-1.html

Az interfészt 200 000-szer hívták MemoryPack és JSON segítségével, és az eredmények a következők voltak:



A MemoryPack 29 895 milliszekundumot igényel
A JSON 34 283 milliszekundumot vesz igénybe

Mivel én vagyokHelyi teszt szerint a különbség nem nagyon észrevehetőAmikor a kereszt-host hívások növekszenek, a mezők és az adatmennyiség nő, úgy gondolom, hogy a szakadék egyre nyilvánvalóbb lesz.

ASP.NET Core konfiguráció támogatja a MemoryPack protokollt

Mivel az objektumot a MemoryPack protokollal szeriázik, majd az HTTP protokollon keresztül továbbítják, ASP.NET a Core-nak támogatnia kell a MemoryPack protokollt, és új MemoryPackInputFormatter osztályt hoznak létre, a kód a következő:

Ezután az MvcOptions támogatja a MemoryPack protokollt a következő kóddal:

Definiáljunk egy szállítóobjektumot a következő UserProfile kóddal:


A vezérlő módszer egy interfészt ad hozzá a következő kóddal:

A konzol a Refitet használja HTTP kérések küldésére

Egy konzolalkalmazás a MemoryPack-et használja objektumok sorializálására és HTTP kérések küldésére interfészekhez, a következő kóddal:

A teszt a következő:



Amikor a MemoryPackSerializer-t használjuk egy objektum serializálására, a következő kód hibát ad:


A System.Object nincs regisztrálva ebben a szolgáltatóban

Ez egy MemoryPack hiba kellene legyen, amelyet az alábbiak szerint módosítva:

(Vége)





Előző:Windows 11 File Explorer akad, beragadt megoldás
Következő:.NET/C# új jellemző rekordtípus
 Háziúr| Közzétéve: 2023-10-1 08:06:35 |
A System.Object nincs regisztrálva ebben a szolgáltatóban

Ez a probléma a Refit-nél is felmerül, a következőképpen történt:




 Háziúr| Közzétéve: 2024-12-31 21:47:28 |
Töltse le a fájlt a Refit-tel, hogy megkapja a válaszfolyamat (Megjegyzés:Az egész letöltött fájlfolyam nem töltődik be a memóriába



Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com