Skip to content

Что такое gRPC

Коротко:

gRPC (gRPC Remote Procedure Calls) — высокопроизводительный open-source RPC-фреймворк от Google (2015). Использует Protocol Buffers для сериализации (в 5-10× компактнее JSON), HTTP/2 для транспорта, поддерживает bidirectional streaming. Популярен для межсервисной коммуникации в микросервисах. Не подходит для browser-клиентов без grpc-web адаптера.

Ниже: подробности, пример, смежные термины, FAQ.

Подробности

  • Определение интерфейса: .proto files с описанием service и messages
  • Сериализация: Protocol Buffers (binary, compact)
  • Транспорт: HTTP/2 (multiplexing, bidirectional)
  • Streaming: unary, server-streaming, client-streaming, bidirectional
  • Client code generation для 10+ языков (Go, Java, Python, C++, Ruby, Node.js)

Пример

service UserService {
  rpc GetUser (GetUserRequest) returns (User);
  rpc ListUsers (Empty) returns (stream User);  // server-streaming
}

Смежные термины

Больше по теме

Часто задаваемые вопросы

gRPC vs REST?

gRPC — binary, fast, backed by Protocol Buffers; для internal microservices. REST — text JSON, human-readable, universal для public API.

Работает ли gRPC в браузере?

Напрямую — нет, т.к. нет доступа к HTTP/2 frame control. Используйте grpc-web (proxy) или gRPC-Gateway (REST-to-gRPC).

Как отладить gRPC?

grpcurl — curl-like CLI. Или BloomRPC GUI. <a href="/check">Enterno HTTP checker</a> помогает с REST-gateway endpoints.