- gRPC é um arcabouço de alto desempenho para comunicação de processos distribuídos, desenvolvido pelo Google e tornado de código aberto em 2015
- Para saber mais: Site do gRPC
- gRPC = gRPC Remote Procedure Call
- gRPC é composto por duas partes:
- o protocolo gRPC
- a serialização de dados
- Ideal para interconexão de microsserviços
- Aplicações móveis e navegadores a seu backend
- Geração das bibliotecas de código de forma automática
-
Bibliotecas clientes em 11 linguagens
- C/C++
- C#
- Dart
- Go
- Java
- Kotlin/JVM
- Node.js
- Objective-C
- PHP
- Python
- Ruby
-
Altamente eficiente nas transmissões e tem um arcabouço de definição de serviços simples
-
Streaming bidirecional utilizando HTTP/2
-
Tem suporte plugável para balanceamento de carga, rastreamento, monitoramento e autenticação
- Nome original: SPDY
- Lançado em 2015
- Dados trafegados são binários e não texto, como no HTTP/1.1
- Utiliza a mesma conexão TCP para enviar e receber dados do cliente e do servidor (multiplex)
- Server Push
- Cabeçalhos são comprimidos
- Gasta menos recursos da rede
- Processo é mais veloz
- Diferentes modos de operação:
- "unary" API
- server streaming
- client streaming
- bidirectional streaming
-
"Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data - think XML, but smaller, faster and simpler"
-
Protocol buffers vs JSON
- Arquivos binários < JSON
- Processo de serialização mais leve do que o JSON
- Gasta menos recursos da rede
-
Formato proto3
- Texto/JSON /// Protocol buffers
- Unidirecional /// bidirecional e assíncrono
- Alta latência /// baixa latência
- Sem contrato (maior chance de erros) /// contrato definido
- Sem suporte a streaming (request/response) /// suporte a streaming
- Design é bem definido (GET, POST, etc.) /// design livre
- Bibliotecas de terceiros /// geração de código