O que é? Onde utilizar? Como implementar esse framework no meu dia a dia? Essas são as primeiras perguntas que foram feitas para dar ânimo para construir esse repositório com exemplos e algumas referências sobre o assunto.
💻 Comunicação entre aplicações
- SOAP (xml)
- REST (json)
- GraphQL* (json)
- RPC (binário)
- WebSocket
💭 o que é gRPC?
Framework desenvolvido pelo Google, que implementa o HTTP/2 e por meio de chamadas de funções simples envia e recebe informações entre cliente e servidor.
🤔 Por que e quando utilizar esse meio de comunicação?
- gRPC é altamente compactado e eficiente para serializar dados estruturados, utilizando o formato de mensagem protobuf (buffers de protocolo)
- As APIs baseadas em RPC são ótimas para ações (ou seja, procedimentos ou comandos) e, como veremos mais adiante, em alguns contextos, pode servir como uma alternativa mais eficiente do que uma API REST.
- Protobuf em vez de JSON / XML
- Construído em HTTP 2 em vez de HTTP 1.1
- Transmissão de mensagens 7 a 10 vezes mais rápida
🗒️ Tipo de comunicações utilizando gRPC
- Unilateral
- Server stream
- Client stream
- Bilateral
✍️ Mão na massa
- Exemplo unilateral:
example-ping-pong
- Exemplo server stream:
example-random-number
- Exemplo client stream:
example-batch-insert
- Exemplo bilateral:
example-chat
📑 Referências
- gRPC: o que é e como utilizá-lo na sua próxima aplicação - 22 jul 2021
- TDot Code - Canal no YouTube com vários exemplos
- Introdução a gRPC: comunicação performática entre microsserviços c/ Rafael Ponte |💻Zup Open Talks🚀 - Vídeo no YouTub sobre gRPC
- gRPC ou REST: qual utilizar?