Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 4002|Respuesta: 2

[Fuente] ASP.NET Core (24) se basa en Refit y comunicación de alto rendimiento MemoryPack

[Copiar enlace]
Publicado el 30-9-2023 22:10:36 | | | |
Requisitos: Según la arquitectura de microservicios utilizada por ASP.NET Core, algunos servicios son infraestructuras (servicios básicos) que necesitan comunicarse frecuentemente con un determinado servicio, y el alto rendimiento y la baja latencia son especialmente importantes.

Utilizar el protocolo MemoryPack para serializar datos tiene dos ventajas frente al JSON: serialización rápida y transferencia de contenido reducida, lo que mejora el rendimiento.

Revisión:

Benchmarks de rendimiento de MessagePack y protobuf-net
https://www.itsvse.com/thread-10655-1-1.html

Comparación de serialización de XML, Json, Hessian, búferes de protocolo
https://www.itsvse.com/thread-4675-1-1.html

La interfaz fue llamada 200.000 veces usando MemoryPack y JSON, y los resultados fueron los siguientes:



MemoryPack tarda 29.895 milisegundos
JSON tarda 34.283 milisegundos

Ya que soyPrueba local, la diferencia no es muy perceptibleCuando aumentan las llamadas entre hosts, los campos y el volumen de datos, creo que la brecha será más evidente.

ASP.NET Configuración Core soporta el protocolo MemoryPack

Dado que el objeto se serializa usando el protocolo MemoryPack y luego se envía por el protocolo HTTP, ASP.NET Core debe soportar el protocolo MemoryPack, y se crea una nueva clase MemoryPackInputFormatter, el código es el siguiente:

Luego, MvcOptions añade soporte para el protocolo MemoryPack, con el siguiente código:

Defina un objeto de transporte con el siguiente código UserProfile:


El método controlador añade una interfaz con el siguiente código:

La consola utiliza Refit para enviar solicitudes HTTP

Una aplicación de consola utiliza MemoryPack para serializar objetos y enviar peticiones HTTP a interfaces, con el siguiente código:

La prueba es la siguiente:



Al usar MemoryPackSerializer para serializar un objeto, el siguiente código dará un error:


System.Object no está registrado en este proveedor

Debería ser un error de MemoryPack, modificado de la siguiente manera:

(Fin)





Anterior:Tirones en el Explorador de archivos de Windows 11, solución atascada
Próximo:.NET/C# nuevo tipo de registro de características
 Propietario| Publicado el 1-10-2023 a las 08:06:35 |
System.Object no está registrado en este proveedor

Este problema es un problema de Refit, de la siguiente manera:




 Propietario| Publicado el 31-12-2024 21:47:28 |
Descarga el archivo con Refit para obtener un flujo de respuesta (Nota:No se carga todo el flujo de archivos descargado en la memoria



Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com