SoftDrops sobre gRPC
No SoftDrops do dia 04 de dezembro, o desenvolvedor Abel Lopes apresentou aos colegas o gRPC e suas vantagens. O gRPC é utilizado por grandes empresas como Square, Netflix, Digital Ocean e SoundCloud para melhorar a performance de seus microsserviços e dos serviços de streaming.
Entendendo o gRPC
O gRPC é um framework open-source criado pelo Google que implementa Remote Procedure Call (RPC) – ou Chamada Remota de Procedimento – que é um protocolo para comunicação entre aplicações. Com a implementação do gRPC, um aplicativo cliente pode requisitar 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.
Entre as características mais importantes do gRPC, é possível citar a capacidade que ele tem de entregar a responsabilidade das comunicações entre aplicações para o HTTP2. Ainda, o gRPC suporta o protocolo Protobuf (protocolo criado e utilizado pelo Google, que serializa dados estruturados).
Sobre o HTTP2
Afinal, porque é interessante usar o HTTP2? Essa foi uma das questões importantes trazidas pelo desenvolvedor Abel e debatida com os colegas no SoftDrops.
A principal diferença estrutural está na comunicação: no HTTP2, ela é bidirecional e permite o que chamamos de multiplexing – que é percebido como melhor velocidade do retorno das requisições. No HTTP1.1, uma solicitação é processada por vez. Quando diversas solicitações são realizadas, é preciso aguardar a resposta uma a uma, o que gera lentidão no processo, como demonstra a figura abaixo.

Já num sistema bidirecional, como é o caso do HTTP2, as requisições e respostas são feitas de forma simultânea. Caso sejam realizadas duas solicitações, elas serão retornadas no mesmo instante, e não necessitam que uma termine para que a outra se inicie. Por isso, a velocidade do HTTP2 é superior ao protocolo HTTP1.1.

Cenários de utilização e benefícios
O gRPC se aplica em cenários que necessitam de:
- Baixa latência;
- Alta escalabilidade;
- Sistemas distribuídos;
- Aplicativos móveis que se comunicam com servidores na nuvem;
- Arquitetura de microsserviços.
Alguns dos benefícios da utilização do gRPC:
- Streaming bidirecional com transporte baseado em HTTP2.
- Facilidade na implementação de autenticação, rastreamento, balanceamento de carga e verificação de integridade.
- De API para SDK – É possível usar sua configuração do serviço e arquivos de definição da interface da API para gerar documentação de referência para sua API.
Linguagens em que o gRPC pode ser aplicado:
- Auth – Objective-C
- Async – C++
- Basic
- Android
- C#
- C++
- Dart
- Go
- Java
- Node
- PHP
- Python
- Ruby
Gostou desse texto? Clique aqui para conferir outros conteúdos sobre SoftDrops aqui no blog.
Sugestões ou críticas para nosso blog? Entre em contato pelo endereço [email protected]
