Exigences : D’après l’architecture de microservices utilisée par ASP.NET Core, certains services sont des infrastructures (services de base) qui doivent communiquer fréquemment avec un certain service, et les hautes performances ainsi que la faible latence sont particulièrement importantes.
L’utilisation du protocole MemoryPack pour sérialiser les données présente deux avantages par rapport à l’utilisation du JSON : une sérialisation rapide et un faible transfert de contenu, ce qui améliore les performances.
Révision:
L’interface a été appelée 200 000 fois à l’aide de MemoryPack et JSON, et les résultats étaient les suivants :
Le MemoryPack prend 29 895 millisecondes Le JSON prend 34 283 millisecondes
Puisque je suisTest local, l’écart n’est pas très visibleLorsque les appels inter-hôtes, les champs augmentent et le volume de données augmentent, je pense que l’écart sera plus évident.
ASP.NET configuration Core prend en charge le protocole MemoryPack
Puisque l’objet est sérialisé via le protocole MemoryPack puis envoyé via le protocole HTTP, ASP.NET Core doit prendre en charge le protocole MemoryPack, et qu’une nouvelle classe MemoryPackInputFormatter est créée, le code est le suivant :
Ensuite, MvcOptions ajoute la prise en charge du protocole MemoryPack, avec le code suivant :
Définissez un objet de transport avec le code UserProfile suivant :
La méthode contrôleur ajoute une interface avec le code suivant :
La console utilise Refit pour envoyer des requêtes HTTP
Une application console utilise MemoryPack pour sérialiser les objets et envoyer des requêtes HTTP aux interfaces, avec le code suivant :
Le test est le suivant :
Lors de l’utilisation de MemoryPackSerializer pour sérialiser un objet, le code suivant donnera une erreur :
System.Object n’est pas enregistré auprès de ce fournisseur Il devrait s’agir d’un bug de MemoryPack, modifié comme suit :
(Fin)
|