Вимоги: Виходячи з архітектури мікросервісів, яку використовує ASP.NET Core, деякі сервіси є інфраструктурою (базовими сервісами), які повинні часто взаємодіяти з певним сервісом, і висока продуктивність та низька затримка є особливо важливими.
Використання протоколу MemoryPack для серіалізації даних має дві переваги порівняно з JSON: швидка серіалізація та невелика передача контенту, що підвищує продуктивність.
Огляд:
Інтерфейс викликали 200 000 разів за допомогою MemoryPack і JSON, і результати були такими:
MemoryPack займає 29 895 мілісекунд JSON займає 34 283 мілісекунди
Оскільки яЛокальний тест показує, що розрив майже не помітнийКоли дзвінки між хостами, поля збільшуються, а обсяг даних збільшується, я вважаю, що розрив стане більш очевидним.
ASP.NET Конфігурація ядра підтримує протокол MemoryPack
Оскільки об'єкт серіалізується за протоколом MemoryPack, а потім надсилається через протокол HTTP, ASP.NET Core має підтримувати протокол MemoryPack, і створюється новий клас MemoryPackInputFormatter, код виглядає так:
Потім MvcOptions додає підтримку протоколу MemoryPack з таким кодом:
Визначте транспортний об'єкт із таким кодом UserProfile:
Метод контролера додає інтерфейс із таким кодом:
Консоль використовує Refit для надсилання HTTP-запитів
Консольний додаток використовує MemoryPack для серіалізації об'єктів і надсилання HTTP-запитів на інтерфейси, використовуючи наступний код:
Тест виглядає так:
При використанні MemoryPackSerializer для серіалізації об'єкта наступний код видасть помилку:
System.Object не зареєстрований у цьому провайдері Це має бути помилка MemoryPack, змінена наступним чином:
(Кінець)
|