Olá, Habr. Para os futuros alunos do curso "Highload Architect" preparamos uma tradução do material.
Também convidamos você a se inscrever em um webinar aberto sobre o tópico "Replicação como um padrão de escalonamento horizontal de armazenamento" com Vladislav Rodin (líder de equipe e especialista em desenvolvimento empresarial Java). Nesta lição, os participantes irão percorrer a replicação, uma das técnicas de escalonamento de banco de dados.
Tenho vários microsserviços que se comunicam entre si usando JSON sobre REST e parece-me que em breve eles atingirão o limite de desempenho do VPS e precisarei atualizá-lo para que não haja redução de desempenho.
, 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.