Cerințe: Pe baza arhitecturii microserviciilor folosite de ASP.NET Core, unele servicii sunt infrastructură (servicii de bază) care trebuie să comunice frecvent cu un anumit serviciu, iar performanța ridicată și latența scăzută sunt deosebit de importante.
Utilizarea protocolului MemoryPack pentru serializarea datelor are două avantaje față de JSON: serializare rapidă și transfer mic de conținut, care îmbunătățesc performanța.
Recenzie:
Interfața a fost apelată de 200.000 de ori folosind MemoryPack și JSON, iar rezultatele au fost următoarele:
MemoryPack durează 29.895 milisecunde JSON durează 34.283 milisecunde
Deoarece eu suntTestul local, golul nu este foarte vizibilCând apelurile cross-host, câmpurile cresc, iar volumul de date crește, cred că diferența va fi mai evidentă.
ASP.NET Configurația de bază suportă protocolul MemoryPack
Deoarece obiectul este serializat folosind protocolul MemoryPack și apoi trimis prin protocolul HTTP, ASP.NET Core trebuie să suporte protocolul MemoryPack, iar o nouă clasă MemoryPackInputFormatter este creată, codul este următorul:
Apoi, MvcOptions adaugă suport pentru protocolul MemoryPack, cu următorul cod:
Definiți un obiect de transport cu următorul cod UserProfile:
Metoda controlerului adaugă o interfață cu următorul cod:
Consola folosește Refit pentru a trimite cereri HTTP
O aplicație de consolă folosește MemoryPack pentru a serializa obiecte și a trimite cereri HTTP către interfețe, cu următorul cod:
Testul este următorul:
Când se folosește MemoryPackSerializer pentru a serializa un obiect, următorul cod va da o eroare:
System.Object nu este înregistrat la acest furnizor Ar trebui să fie un bug al MemoryPack, modificat astfel:
(Sfârșit)
|