.NET Core 3.1 RESTおよびgRPCパフォーマンステスト

.NET Core 3.0を使用して、ベトナム人兄弟のgithubで、REST対gRPCの評価パフォーマンスを確認しました。本日、.NET Core 3.1にアップグレードし、テストも行いました。記事と彼のブログ投稿の結果は、同じ:https : //dev.to/thangchung/performance-benchmark-grpc-vs-rest-in-net-core-3-preview-8-45ak

8年前に記事を書きました:アプリケーション選択におけるWCFとASP.NET Web API現在は2020年になり、WCFはgRPCに置き換えられ、ASP.NET Web APIはASP.NET Core Web APIに置き換えられ、標準化されたRESTサービスが外部に提供されます。内部通信にgRPCを使用することも、新時代の.NETアプリケーションに適しています。 Kubernetesアーキテクチャがトランスポートプロトコルのペイロード形式を使用する方法と同様の選択。

画像

.NET Core 3.1でのRESTとgRPCのパフォーマンスを見てみましょう。https://github.com/geffzhang/RESTvsGRPCからコードダウンロードますテストマシンに.NET Core 3.1をインストールします。

  • REST API:
 cd RESTvsGRPC\RestAPI
 dotnet run -p RestAPI.csproj -c Release
  • gRPC API:
 cd RESTvsGRPC\GrpcAPI
 dotnet run -p GrpcAPI.csproj -c Release
  • ベンチマークアイテム:
 cd RESTvsGRPC\RESTvsGRPC
 dotnet run -p RESTvsGRPC.csproj -c Release

等待完成测试后,我们将会得到类似下面的结果,具体的结果依赖于你的测试机器配置,我使用Win10 的Surface Book 2上面完成的下面的测试结果:
画像
インターフェースによって返されるデータの量が比較的少ない場合、RESTのパフォーマンスはgRPCよりも優れています。データの量が多くなると、gRPCのパフォーマンス上の利点はより明白になります。.NET Core 3のjsonは大幅に最適化されており、メッセージペイロード内の小さなデータを処理するときに大きな違いが生じますが、実際には大きなデータペイロードの場合、違いはありません。全体として、gRPCはこの分野でも依然として勝者です。私はどちらが他より優れていると言っているのではありません。私が言いたいのは、ビジネスケースで使用するプロトコルに適した戦略が必要だということです。通常、外部との外部通信(外部サービスの統合やフロントエンドとの通信など)にはREST通信を使用し、内部サービスの通信にはgRPCを使用します。

参照:

おすすめ

転載: www.cnblogs.com/shanyou/p/12679093.html