GRPC

gRPC (gRPC Remote Procedure Calls[1]) também conhecido como Google Remote Procedure Call é um sistema de código aberto de chamada de procedimento remoto (RPC) desenvolvido inicialmente no Google em 2015 como a próxima geração de a infraestrutura RPC, Stubby.[2][3] Ele usa HTTP/2 para transporte, Protocol Buffers como a linguagem de descrição da interface e fornece recursos como autenticação, streaming bidirecional e controle de fluxo, ligações de bloqueio ou não, e cancelamento e tempos limite. Ele gera ligações de cliente e servidor de plataforma cruzada para muitos idiomas. Os cenários de uso mais comuns incluem serviços de conexão em uma arquitetura de estilo de microsserviços ou conexão de clientes de dispositivos móveis a serviços de back-end.[3]

O uso complexo de HTTP/2 pelo gRPC impossibilita a implementação de um cliente gRPC no navegador, exigindo um proxy.[4]

Autenticação

O gRPC oferece suporte ao uso de TLS e autenticação baseada em token. A conexão com os serviços do Google deve usar TLS. Existem dois tipos de credenciais: credenciais de canal e credenciais de chamada.[5]

Codificação

O gRPC usa buffers de protocolo para codificar dados. Ao contrário das APIs REST com JSON, elas têm uma especificação mais rígida. Por ter uma única especificação, o gRPC elimina o debate e economiza tempo do desenvolvedor porque o gRPC é consistente em todas as plataformas e implementações.[6]

Adoção

Várias organizações diferentes adotaram o gRPC, como Uber,[7] Square, Netflix, IBM, CoreOS, Docker, CockroachDB, Cisco, Juniper Networks, Spotify,[8] Zalando[9] e Dropbox.[10]

O projeto de código aberto u-bmc usa gRPC para substituir o IPMI.[11] Em 8 de janeiro de 2019, o Dropbox anunciou que a próxima versão do "Courier", sua estrutura RPC no centro de sua arquitetura orientada a serviços (SOA), seria migrada para ser baseada em gRPC, principalmente porque se alinhava bem com seus Estruturas RPC.

Referências

  1. «FAQ». gRPC 
  2. «Introducing gRPC, a new open source HTTP/2 RPC Framework» 
  3. a b «About gRPC». gRPC (em inglês). Consultado em 25 de maio de 2021 
  4. «The state of gRPC in the browser». gRPC (em inglês) 
  5. «gRPC». grpc.io. Consultado em 24 de fevereiro de 2020 
  6. JamesNK. «Compare gRPC services with HTTP APIs». docs.microsoft.com (em inglês). Consultado em 24 de fevereiro de 2020 
  7. «gRPC at Uber» 
  8. «gRPC at Spotify» (PDF). jfokus.se. Consultado em 12 de maio de 2020 
  9. «Zalando Tech Radar». opensource.zalando.com. Consultado em 8 de abril de 2021 
  10. «How we migrated Dropbox from Nginx to Envoy». Dropbox.Tech. Consultado em 30 de outubro de 2020 
  11. «u-bmc». GitHub.com 

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.