こんにちは、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- .
, :
-. , .
. . .
, . .
gRPC- Protocol Buffers .
(stream) gRPC GetLargePayload
.
RestAPI WebAPI, , : , .
, , .
GrpcAPI gRPC-. ,
GetLargePayload
, .
RESTvsGRPC , 100 200 , . , 100 200 .
, gRPC , . REST. gRPC , . , HTTP/2, , HTTP.
Windows . Windows .
, .
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.