RPC
- O RPC é um modelo client-server
- O solicitante é um client e quem fornece a informação é um serviço Server side
- O RPC é uma operação síncrona e exige que o Client seja suspenso até que o resultado do Server seja retornado
gRPC
- Serviço de alto desempenho para atender chamadas RPC (Remote Call Procedures)
- Open Source
- Suporte a load balance, tracing, healt-check e autenticação
- Suporta o protocolo Protobuf por padrão
- Suporta HTTP2
- Criado pelo Google, com o objetivo de conectar os microserviços em seus datacenters
Protocol buffer
- Protobuf é um protocolo de mensagem criado e utilizado pelo Google para serializar dados estruturados
- É independente de linguagem de programação ou plataforma
- A transferência utilizando o protobuf chega a ser até 6 vezes mais rápido se comparado com JSON
Benefícios do gRPC
- Redução do uso de rede através da serialização do Protobuf
- Estrutura RPC leve e de alto desempenho
- Ferramentas disponíveis para várias linguagens de programação
É ideal para ambientes com Microsserviços, pois torna a comunicação leve e em ambientes com microsserviços a eficiência é crítica.
Exemplo de arquivo proto (Java)