Что такое grpc?
Для тех, кто еще не слышал о gRPC, gRPC — это не зависящий от языка фреймворк для удаленного вызова процедур (RPC, remote procedure calls), разработанный Google, которая серьезно вкладывается в производительность и масштабирование. Он появился довольно давно, но многие (а, может быть, только я) отложили его на второй план из-за затрат на написание IDL и дополнительного кода стабов (stub), который тоже необходимо поддерживать. В то же время REST очень легко реализуется с помощью ASP.NET Core WebAPI.
Sautrans — служба доставки | грузоперевозки любой сложности
Компания SauTrans приветствует вас на своем официальном сайте! Мы быстро и безопасно осуществляем перевозки грузов различной сложности. Сделать заказ на транспортные услуги могут как физические, так и юридические лица. Для доставок задействованы все виды транспорта:
- автомобильный. Наш автопарк состоит из 400 машин грузоподъемностью от 1,5 до 20 тонн, поэтому грузовики подаются под загрузку через несколько часов после заявки на автотранспортную перевозку;
- железнодорожный. У нас заключены прямые договоры с владельцами подвижного ж/д состава, вагоны и платформы предоставляются в любом количестве и без дополнительных посредников;
- морской. Мы специализируемся на контейнерных перевозках грузов в международных и внутрироссийских направлениях. Грузоперевозка водным транспортом является самой дешевой по сравнению с другими видами транспортировки;
- авиационный. Это самый скоростной способ доставки грузов, и чем больше расстояние между пунктами, тем заметнее разница во времени по сравнению с другими способами;
- мультимодальный. Наиболее востребованный вид грузовых перевозок, особенно при доставке по схеме «от двери до двери». Услуга оказывается двумя видами транспорта или более.
- Международные. У нас можно заказать как небольшую курьерскую доставку, так и перевозку полными фурами, вагонами или судами.
- По России. Доставляем грузы из любого населенного пункта в любой другой. Для нас нет недоступных городов или неудобных маршрутов.
- Внутригородские доставки. Предоставляем удобный сервис по перевозке грузов по Москве. Организуем регулярное снабжение торговых точек внутри МКАД и за ее пределами, а также по Московской области. Организуем аналогичный сервис и в любом другом российском городе.
При заказе грузовой перевозки у нас вы убедитесь, что стоимость услуг является одной из самых низких на рынке. Помимо цен, стоит отметить следующие значимые преимущества перед другими транспортными компаниями:
- система отслеживания груза в пути и информирования клиента о его местонахождении;
- страхование ответственности перевозчика на 15 миллионов рублей;
- дополнительные услуги — заказ грузчиков, ответственное хранение на складе, экспедирование, сопровождение, охрана;
- прозрачная система документации;
- оплата любым удобным способом.
Мы нацелены на долгосрочное сотрудничество, считаем всех наших клиентов партнерами и готовы делиться нашими наработками и опытом. Ждем ваших заявок!
Ограничения бенчмарка
Было несколько ограничений, которые я хотел реализовать при бенчмаркинге:
Протестируйте сами
Если вы хотите повторить тест самостоятельно или подстроить его под себя, то не стесняйтесь клонировать мой репозиторий EmperorRXF/RESTvsGRPC
Для теста запустите оба сервиса, как показано ниже.
Запуск RestAPI: dotnet run -p RestAPI -c Release
Запуск GrpcAPI: dotnet run -p GrpcAPI -c Release
И запустите бенчмарк.
Запуск бенчмарка: dotnet run -p RESTvsGRPC -c Release
Структура проекта

Также для gRPC-сервиса были созданы следующие определения Protocol Buffers для сообщений и сервисов.

Я также тестирую производительность потоковой передачи (stream) gRPC с помощью сервиса GetLargePayload.

Как я уже упоминал выше в разделе об ограничениях, я убрал лишнее логирование, чтобы оно не влияло на результаты бенчмарка.



