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:
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)
|