Requisiti: In base all'architettura dei microservizi utilizzata da ASP.NET Core, alcuni servizi sono infrastrutture (servizi di base) che devono comunicare frequentemente con un certo servizio, e le alte prestazioni e la bassa latenza sono particolarmente importanti.
L'utilizzo del protocollo MemoryPack per serializzare i dati presenta due vantaggi rispetto all'uso JSON: una serializzazione rapida e un piccolo trasferimento di contenuti, che migliora le prestazioni.
Recensione:
L'interfaccia fu chiamata 200.000 volte usando MemoryPack e JSON, e i risultati furono i seguenti:
MemoryPack impiega 29.895 millisecondi JSON impiega 34.283 millisecondi
Dato che sonoTest locale, il gap non è molto evidenteQuando le chiamate cross-host, i campi aumentano e il volume dati aumenta, credo che il divario sarà più evidente.
ASP.NET Configurazione Core supporta il protocollo MemoryPack
Poiché l'oggetto viene serializzato usando il protocollo MemoryPack e poi inviato tramite il protocollo HTTP, ASP.NET Core deve supportare il protocollo MemoryPack, e viene creata una nuova classe MemoryPackInputFormatter, il codice è il seguente:
Successivamente MvcOptions aggiunge il supporto per il protocollo MemoryPack, con il seguente codice:
Definisci un oggetto di trasporto con il seguente codice UserProfile:
Il metodo controller aggiunge un'interfaccia con il seguente codice:
La console utilizza Refit per inviare richieste HTTP
Un'applicazione console utilizza MemoryPack per serializzare gli oggetti e inviare richieste HTTP alle interfacce, con il seguente codice:
Il test è il seguente:
Quando si utilizza MemoryPackSerializer per serializzare un oggetto, il seguente codice dà un errore:
System.Object non è registrato in questo provider Dovrebbe trattarsi di un bug di MemoryPack, modificato come segue:
(Fine)
|