Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 4002|Odpowiedź: 2

[Źródło] ASP.NET Core (24) opiera się na komunikacji wysokiej wydajności Refit, MemoryPack

[Skopiuj link]
Opublikowano 2023-9-30 22:10:36 | | | |
Wymagania: Na podstawie architektury mikroserwisów używanej przez ASP.NET Core, niektóre usługi to infrastruktura (usługi podstawowe), które muszą często komunikować się z daną usługą, a wysoka wydajność i niskie opóźnienia są szczególnie ważne.

Wykorzystanie protokołu MemoryPack do serializacji danych ma dwie zalety w porównaniu z JSON: szybką serializację i niewielki transfer treści, co poprawia wydajność.

Recenzja:

Benchmarki wydajności MessagePack i protobuf-net
https://www.itsvse.com/thread-10655-1-1.html

.net/c# Xml, Json, Hessian, porównanie serializacji protokołu
https://www.itsvse.com/thread-4675-1-1.html

Interfejs był wywoływany 200 000 razy za pomocą MemoryPack i JSON, a wyniki były następujące:



MemoryPack zajmuje 29 895 milisekund
JSON zajmuje 34 283 milisekundy

Skoro jestemLokalny test – luka nie jest zbyt zauważalnaGdy połączenia międzyhostowe, pola wzrosną, a objętość danych wzrośnie, uważam, że różnica będzie bardziej widoczna.

ASP.NET Konfiguracja rdzeniowa obsługuje protokół MemoryPack

Ponieważ obiekt jest serializowany za pomocą protokołu MemoryPack, a następnie przesyłany przez protokół HTTP, ASP.NET Core musi wspierać protokół MemoryPack, a nowa klasa MemoryPackInputFormatter jest tworzona, kod wygląda następująco:

Następnie MvcOptions dodaje wsparcie dla protokołu MemoryPack, z następującym kodem:

Zdefiniuj obiekt transportowy z następującym kodem UserProfile:


Metoda kontrolera dodaje interfejs z następującym kodem:

Konsola używa Refit do wysyłania żądań HTTP

Aplikacja konsolowa wykorzystuje MemoryPack do serializacji obiektów i wysyłania żądań HTTP do interfejsów, z następującym kodem:

Test wygląda następująco:



Podczas używania MemoryPackSerializer do serializacji obiektu, następujący kod wyświetli błąd:


System.Object nie jest zarejestrowany u tego dostawcy

Powinien to być błąd MemoryPack, zmodyfikowany w następujący sposób:

(Koniec)





Poprzedni:Zacinanie się i zacięcie rozwiązania w Eksploratorze plików Windows 11
Następny:.NET/C# nowy typ rekordu funkcji
 Ziemianin| Opublikowano 2023-10-1 08:06:35 |
System.Object nie jest zarejestrowany u tego dostawcy

Ten problem dotyczy Refitu, w następujący sposób:




 Ziemianin| Opublikowano 2024-12-31 21:47:28 |
Pobierz plik za pomocą Refit, aby uzyskać przepływ odpowiedzi (Uwaga:Cały pobrany strumień plików nie jest ładowany do pamięci



Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com