Skip to content
Latchkey

O Que É gRPC? RPC de Alto Desempenho Explicado

gRPC é um framework de remote procedure call de alto desempenho que usa HTTP/2 e protocol buffers binários para permitir que serviços chamem uns aos outros como funções locais.

Enquanto REST e GraphQL favorecem JSON legível por humanos sobre HTTP, o gRPC favorece velocidade e contratos rígidos. Você define serviços e mensagens em um arquivo .proto, gera código de cliente e servidor, e as chamadas viajam como frames binários compactos sobre HTTP/2. É comum no tráfego interno de microservices que os pipelines constroem e fazem deploy.

Contratos em protocol buffers

Um arquivo .proto declara os métodos do serviço e os formatos das mensagens. A tooling gera clientes e servidores fortemente tipados em muitas linguagens, então o contrato é aplicado em tempo de compilação em vez de por convenção.

Construído sobre HTTP/2

O gRPC trafega sobre HTTP/2, que multiplexa muitas chamadas em uma conexão e suporta streaming. Isso reduz a latência para tráfego serviço-a-serviço intenso em comparação com abrir uma conexão por requisição.

Modos de streaming

  • Unary: uma requisição, uma resposta.
  • Server streaming: uma requisição, muitas respostas.
  • Client streaming: muitas requisições, uma resposta.
  • Streaming bidirecional: ambos os lados transmitem.

Status codes, mas o seu próprio conjunto

O gRPC tem seus próprios status codes como OK, UNAVAILABLE e DEADLINE_EXCEEDED, distintos dos códigos HTTP. UNAVAILABLE tipicamente sinaliza um problema transitório que vale a repetição, enquanto INVALID_ARGUMENT é um erro permanente do cliente.

gRPC em CI/CD

Pipelines compilam arquivos .proto, executam verificações de contrato e fazem deploy de serviços que falam gRPC internamente. Um deploy que muda o formato de uma mensagem de forma incompatível pode quebrar os callers, e é por isso que testes de contrato do proto rodam em CI.

Falhas transitórias de gRPC

Uma queda momentânea de rede aparece como UNAVAILABLE ou deadline exceeded, ambos comumente repetíveis. Nos runners da Latchkey, falhas de transporte transitórias durante chamadas de serviço são repetidas automaticamente, enquanto erros permanentes de argumento ou de autenticação são expostos como falhas reais.

Principais conclusões

  • gRPC é um framework de RPC binário sobre HTTP/2 com contratos definidos em protocol buffers.
  • Ele tem seus próprios status codes, onde UNAVAILABLE é tipicamente repetível.
  • O CI executa verificações de contrato do proto porque mudanças incompatíveis de mensagem quebram os callers.

Guias relacionados