RESTとgRPCのパフォーマンスの比較

こんにちは、Habr。「HighloadArchitect」コースの将来の学生のために、資料の翻訳用意しました。



また、Vladislav Rodin(チームリーダーおよびJavaエンタープライズ開発スペシャリスト)による「ストレージスケールアウトのパターンとしてのレプリケーション」というトピックに関するオープンウェビナーに登録することをお勧めしますこのレッスンでは、参加者はデータベーススケーリング手法の1つであるレプリケーションについて説明します。






JSON over RESTを使用して相互に通信するマイクロサービスがいくつかありますが、すぐにVPSのパフォーマンス制限に達すると思われるため、パフォーマンスの低下がないようにアップグレードする必要があります。





, gRPC ( ) , , , gRPC.





gRPC?

, gRPC, gRPC — (RPC, remote procedure calls), Google, . , (, , ) - IDL (stub), . REST ASP.NET Core WebAPI.





JSON REST, gRPC Protocol Buffers — . gRPC REST. Protocol Buffers protoc, proto-. , gRPC HTTP/2, , HTTP- .





, :





  • -. , .





  • . . .





  • , . .





  • ModelLibrary REST gRPC-. , , , , . NASA , 1000 , .





NASA隕石データのサンプル
NASA

gRPC- Protocol Buffers .





メッセージのプロトコルバッファ定義
Protocol Buffer

(stream) gRPC GetLargePayload



.





サービスのプロトコルバッファ定義
Protocol Buffer
  • RestAPI WebAPI, , : , .





ASP.NETMVCコアルーティング
ASP.NET MVC Core

, , .





ASP.NETMVCコアWebAPIのログレベルを下げる
ASP.NET MVC Core WebAPI
  • GrpcAPI gRPC-. , GetLargePayload



    , .





GrpcAPIサービスの実装
GrpcAPI
  • RESTvsGRPC , 100 200 , . , 100 200 .





RESTvsGRPCベンチマーク
RESTvsGRPC

 

, gRPC , . REST. gRPC , . , HTTP/2, , HTTP.





Linuxでのベンチマーク結果
Linux

Windows . Windows .





Windowsでのベンチマーク結果
Windows
RESTとGRPCのパフォーマンス
REST vs GRPC

, EmperorRXF/RESTvsGRPC





, .





RestAPI: dotnet run -p RestAPI -c Release







GrpcAPI: dotnet run -p GrpcAPI -c Release







.





: dotnet run -p RESTvsGRPC -c Release







gRPC REST . Protocol Buffers HTTP/2 gRPC.





gRPC 45 10 WebAPI. , REST , ( , ASP.NET Core MVC) ( ). gRPC, , , , protoc, Visual Studio . , , ItemGroup "Protobuf" csproj-. , gRPC ASP.NET Core 3.0.





, gRPC. 






"Highload Architect".





« »








All Articles