Что такое gRPC

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

Ответ

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

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

  • Кросс-языковая поддержка
  • HTTP/2 для транспорта
  • Автоматическая генерация кода клиента/сервера
  • Встроенные механизмы аутентификации, балансировки и т.д.

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

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

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

Генерация кода: protoc --go_out=. --go-grpc_out=. path/to/file.proto