Hola, Habr. Para los futuros alumnos del curso "Highload Architect" preparamos una traducción del material.
También lo invitamos a registrarse en un seminario web abierto sobre el tema "La replicación como patrón de escalamiento horizontal del almacenamiento" con Vladislav Rodin (líder del equipo y especialista en desarrollo empresarial de Java). En esta lección, los participantes recorrerán la replicación, una de las técnicas de escalado de bases de datos.
Tengo varios microservicios que se comunican entre sí usando JSON sobre REST, y me parece que pronto alcanzarán el límite de rendimiento del VPS, y tendré que actualizarlo para que no se reduzca el rendimiento.
, 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.