Loading Softdesign

SoftDrops sobre gRPC

Bruna Leite
por Bruna em 19/12/2019
4 minutos de leitura

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.

Comunicação em HTTP1. Fonte: Medium

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.

Comunicação em HTTP2. Fonte: Medium.

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.