BT

gRPC 1.0: pronto para produção

| por Abel Avram Seguir 7 Seguidores , traduzido por Leonardo Galvão Seguir 0 Seguidores em 14 set 2016. Tempo estimado de leitura: 2 minutos |

O Google lançou a versão 1.0 do gRPC, estável e pronta para produção. O projeto é usado para comunicação entre serviços.

Originalmente, o gRPC era um projeto chamado "Stubby", usado para comunicação entre alguns dos serviços internos do Google. A empresa abriu o código do projeto 18 meses atrás - com a esperança de que outras equipes o usassem para consumir serviços do Google, realizar a comunicação entre serviços via internet, ou mesmo promover a comunicação entre produtos internos.

O gRPC é um sistema de RPC neutro a plataformas que usa o IDL de protocol buffers (Protobuf) que permite definir serviços de end-point e payloads (conteúdos) de mensagens a transferir, e faz a geração de stubs para múltiplas linguagens. O gRPC suporta 10 linguagens: C, C++, C#, GO, Java (incluindo Java para Android), Node.js, Objective-C, Python, PHP e Ruby - e as plataformas Linux, macOS e Windows. Há implementações nativas em C para Go e Java, e wrappers em volta da biblioteca C para as outras linguagens.

Um painel criado pelo Google mostra a latência de várias comunicações com o gRPC, entre duas instâncias de VMs no mesmo datacenter. Para mensagens seguras, síncronas e unárias, os gráficos indicam latências de 100 µs (microssegundos) para o Netperf base. Com C++, Java e C # as implementações reportam cerca de 200-300 µs de latência; Ruby, Python e Node.js apresentam 700, 900 e 1.100 µs, respectivamente.

As mensagens a serem transferidos são serializadas em formato binário usando o Protocol Buffers 3.0, que obtém melhor desempenho do que formatos textuais. Em comparação com JSON, o Protobuf pode reduzir o tamanho de uma mensagem à metade, usando apenas um terço do tempo para serialização/desserialização, de acordo com Kelsey Hightower, engenheiro do Google.

Além de oferecer suporte a RPCs unários (que consistem de um pedido seguido por uma resposta), o gRPC faz uso de HTTP/2 para proporcionar streaming unidirecional ou bidirecional entre cliente e servidor. A comunicação pode ser síncrona ou assíncrona. Também é suportada a autenticação via SSL/TLS ou OAuth2 (com APIs do Google).

Na nova versão do gRPC, o processo de instalação foi simplificado, sendo disponibilizados binários gRPC via CocoaPods, gem, Gradle, Maven, NPM, NuGet, pecl, pip, ou imagens Docker.

Uma série de empresas, incluindo Cisco, CoreOS, Juniper, Netflix e Square, estão usando o gRPC internamente, de acordo com o Google.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT