Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 4002|Risposta: 2

[Fonte] ASP.NET Core (24) si basa su Refit e comunicazione ad alte prestazioni MemoryPack

[Copiato link]
Pubblicato il 30-09-2023 22:10:36 | | | |
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:

Benchmark di prestazioni MessagePack e protobuf-net
https://www.itsvse.com/thread-10655-1-1.html

Confronto della serializzazione di XML, Json, Hessian, Protocol Buffers
https://www.itsvse.com/thread-4675-1-1.html

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)





Precedente:Risoluzione bloccata di Esplora file di Windows 11, bloccata
Prossimo:.NET/C# nuovo tipo di record feature
 Padrone di casa| Pubblicato il 2023-10-1 08:06:35 |
System.Object non è registrato in questo provider

Questo problema riguarda Refit come segue:




 Padrone di casa| Pubblicato il 31-12-2024 21:47:28 |
Scarica il file con Refit per ottenere un flusso di risposta (Nota:L'intero flusso di file scaricato non viene caricato in memoria



Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com