Junior — Middle
Qual é a diferença entre o modo de transmissão de dados em streaming do servidor e uma chamada única no gRPC?
sobes.tech IA
Resposta da IA
No gRPC, distinguem-se vários modos de transmissão de dados:
-
Chamada única (Unary RPC): o cliente envia uma solicitação e recebe uma resposta. É a clássica solicitação-resposta.
-
Streaming do servidor (Server Streaming RPC): o cliente envia uma solicitação, e o servidor responde com um fluxo de mensagens. O cliente lê as mensagens à medida que chegam, até que o servidor finalize o fluxo.
Diferenças:
- Na chamada única, a troca ocorre uma única vez — solicitação e resposta.
- No streaming do servidor, o servidor pode enviar várias mensagens em resposta a uma única solicitação, o que é útil para transmitir grandes volumes de dados ou atualizações em tempo real.
Exemplo em Go (streaming do servidor):
func (s *server) ListFeatures(req *pb.Rectangle, stream pb.RouteGuide_ListFeaturesServer) error {
for _, feature := range features {
if inRange(feature.Location, req) {
if err := stream.Send(feature); err != nil {
return err
}
}
}
return nil
}