O que é gRPC?

Home » BR » Blog » O que é gRPC?


* Este posto é o segundo da série sobre gRPC


O que é gRPC?

Ao desenvolver um aplicativo gRPC, a primeira coisa que se faz é definir uma interface de serviço. A definição da interface de serviço contém informações sobre como seu serviço pode ser consumido pelos consumidores, que métodos você permite que os consumidores liguem remotamente, que parâmetros de métodos e formatos de mensagem usar ao invocar esses métodos, etc. O idioma no qual especificamos a definição do serviço é conhecido como Linguagem de Definição de Interface (IDL) e Buffers de Protocolo é usado no gRPC. Além disso, o HTTP/2 é utilizado para o transporte das informações.

Usando Protocol Buffers, você pode gerar código do lado do servidor conhecido como esqueleto de servidor, o que simplifica a lógica do lado do servidor ao fornecer abstrações de comunicação de baixo nível. Também é possível gerar código do lado do cliente, conhecido como client stub, que simplifica a comunicação do lado do cliente com abstrações para ocultar a comunicação de baixo nível para diferentes linguagens de programação. Os métodos que são especificados na definição da interface de serviço podem ser invocados remotamente pelo lado do cliente tão facilmente quanto uma invocação de função local. gRPC lida com todas as complexidades normalmente associadas à execução de contratos de serviço rigorosos, serialização de dados, comunicação em rede, autenticação, controle de acesso, observabilidade, etc.

Deixe-me mostrar-lhe um exemplo para lhe dar uma melhor compreensão de como o gRPC funciona. Imagine que você está construindo um comércio eletrônico de bebidas, composto de vários microserviços. Você quer que um deles forneça os detalhes das bebidas que estão disponíveis em seu aplicativo. O serviço DrinkInfo é modelado de tal forma que é exposto em toda a rede como um serviço gRPC.

A definição do serviço é especificada no arquivo DrinkInfo.proto, que é usado tanto pelo lado do servidor quanto pelo lado do cliente para gerar o código. Neste exemplo, assumi que o consumidor é implementado usando Node e o servidor é implementado usando Python. A comunicação em rede entre o serviço e o consumidor se dá através do HTTP/2.

No próximo post irei entrar nos detalhes desta comunicação gRPC.

Gostaria de aproveitar esta oportunidade para recomendar alguns livros que podem ser de seu interesse:



Learning HTTP/2: A Practical Guide for Beginners

Stephen Ludin


Modern API Development with Spring and Spring Boot: Design highly scalable and maintainable APIs with REST, gRPC, GraphQL, and the reactive paradigm

Sourabh Sharma