# README
Introdution gRPC
Diference between gRPC and RPC
-
gRPC: é um framework do google de alto desempenho desenvolvido pelo google para atender chamadas RPC (Remote Procedure Call) utiliza a protobuf como mecanismo de serializacao de dados que tem papel significativo na reducao de trafego de rede
-
RPC: é a definicao de um protocolo que executa procedimentos em outros computadores atravez de rede.
Protocol Buffer
Protocol buffer ou protobuf é um protocolo de mensagens agnostico de linguagem criado pela google para serializar dados estruturados.
A transferencia utilizando protobuf chega a ser 6x mais rapida se comparada com json, isso acontece pois as mensagens serializadas com o protobuf sao enviadas em binario deixando o arquivo de transferencia bem menor .
O diagrama a seguir mostra como o protobuf trabalha:
Arquitetura gRPC
Como em muitos servicos RPC, o gRPC utiliza a ideia de definir um servidor e um cliente, no qual o servidor especifica os metodos para manipular as chamadas dos clientes. No lado do cliente é definido um stub que contem os mesmo metodos que o servidor.
Principais vantagens
- Leve e rapida pois utiliza codificacao binaria http/2
- disponivel em varias linguagens
- multiplataform
- dar suporte a chamadas streamings do cliente para o servidor
Tipos de api com grpc
1.Unary
2.Server streaming
3.client streaming
4.Bi direction streaming