Visão geral do gRPC

O gRPC é uma biblioteca RPC universal de código aberto de alto desempenho desenvolvida pelo Google. No gRPC, um aplicativo cliente pode chamar métodos diretamente em um aplicativo servidor de uma outra máquina, como se ela fosse um objeto local, facilitando a criação de aplicativos e serviços distribuídos.

Um dos principais benefícios de usar o gRPC é a documentação; Você pode usar os arquivos de configuração do serviço e de definição da interface da API para gerar a documentação de referência para sua API.

Gerenciamento de APIs

Com a API Gateway para gRPC, é possível usar os recursos de gerenciamento de API da API Gateway para adicionar monitoramento, hospedagem, rastreamento, autenticação e muito mais aos seus serviços gRPC no Cloud Run. Além disso, quando você especifica regras de mapeamento especiais, a API Gateway converte o JSON RESTful em HTTP em solicitações gRPC. Isso significa que é possível implantar um servidor gRPC gerenciado pelo Cloud Endpoints e chamar a API usando um cliente gRPC ou JSON/HTTP, proporcionando muito mais flexibilidade e facilidade de integração com outros sistemas.

É possível criar serviços do gRPC para gateway de API em qualquer linguagem compatível com o gRPC. Descubra muito mais sobre o gRPC, inclusive guias de início rápido e tutoriais para criar servidores e clientes no site do gRPC.

Definição e configuração de serviço

O gRPC tem como base a ideia de definir um serviço e especificar os métodos que podem ser chamados remotamente com parâmetros e tipos de retorno deles. Por padrão, o gRPC usa buffers de protocolo como a linguagem IDL (Interface Definition Language) para descrever a interface do serviço e a estrutura das mensagens de payload.

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

Para usar o gRPC com o gateway de API, é necessário fornecer uma configuração de serviço (em inglês) com a definição do serviço. Isso define o comportamento de ambiente de execução do serviço, inclusive a autenticação, as APIs incluídas no serviço, os mapeamentos das solicitações HTTP para métodos gRPC e as configurações especiais do Cloud Endpoints.

Transcodificação

O gateway de API fornece a tradução de protocolo para seus serviços gRPC no Cloud Run, permitindo que os clientes usem HTTP/JSON para se comunicar com um serviço gRPC por meio do gateway de API.

O caso de uso mais comum é a comunicação dos clientes de navegador com servidores gRPC sem suporte especial de bibliotecas de cliente gRPC. A API Gateway fornece um mecanismo para mapear solicitações HTTP para métodos gRPC como parte da configuração de serviços.

Você pode saber mais sobre isso em Como transcodificar HTTP/JSON em gRPC.

Limitações

Os seguintes recursos do gRPC ainda não são compatíveis com o gateway de API:

  • compactação de payload
  • qualquer IDL que não é buffer de protocolo

No momento, o gateway de API é compatível apenas com os serviços gRPC do Cloud Run.

A seguir

  • Explore amostras. A amostra getting-started-grpc está disponível no GitHub nas seguintes linguagens:
  • A amostra Bookstore está disponível nas seguintes linguagens: