Junior — Middle
Тафовут дар байни режими интиқоли маълумоти серверӣ ва даъвати ягона дар gRPC чист?
sobes.tech AI
Ҷавоб аз AI
gRPC-д әртүрлі деректерді беру режимдері бөлінеді:
-
Бір реттік шақыру (Unary RPC): клиент бір сұрау жібереді және бір жауап алады. Бұл классикалық сұрау-жауап үлгісі.
-
Серверлік ағын (Server Streaming RPC): клиент бір сұрау жібереді, ал сервер хабарламалар ағынымен жауап береді. Клиент келген хабарламаларды оқиды, сервер ағынын аяқтағанша.
Айырмашылықтар:
- Бір реттік шақыруда алмасу бір рет болады — сұрау және жауап.
- Серверлік ағында, сервер бір сұрауға бірнеше хабарламалар жібере алады, бұл үлкен көлемдегі деректерді немесе нақты уақыттағы жаңартуларды беру үшін ыңғайлы.
Go тілінде мысал (серверлік ағын):
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
}