Что такое gRPC

«Что такое gRPC» — вопрос из категории Сети, который задают на 28% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

gRPC — это современный фреймворк для удалённого вызова процедур (RPC), разработанный Google. Он использует HTTP/2 для транспорта, Protocol Buffers (protobuf) как язык описания интерфейсов и бинарный формат сериализации, что делает его высокопроизводительным и компактным.

Ключевые особенности:

  • Поддержка потоковой передачи (unary, server streaming, client streaming, bidirectional streaming)
  • Кроссплатформенность и поддержка множества языков
  • Встроенные механизмы аутентификации, шифрования и балансировки нагрузки

Пример proto-файла:

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply);
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

C# пример вызова:

var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(new HelloRequest { Name = "World" });
Console.WriteLine(reply.Message);

gRPC особенно эффективен для микросервисных архитектур благодаря низким накладным расходам и высокой производительности.