Junior — Middle
gRPC-də server tərəfindən axın məlumat ötürmə rejimi ilə tək çağırış arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
gRPC-də müxtəlif məlumat ötürmə rejimləri ayırd edilir:
-
Tək çağırış (Unary RPC): müştəri bir sorğu göndərir və bir cavab alır. Bu klassik sorğu-cavab modelidir.
-
Server axını (Server Streaming RPC): müştəri bir sorğu göndərir və server cavab olaraq məlumat axını ilə cavab verir. Müştəri gələn mesajları oxuyur, server axını tamamlayana qədər.
Fərqlər:
- Tək çağırışda, mübadilə yalnız bir dəfə baş verir — sorğu və cavab.
- Server axınında, server bir sorğuya cavab olaraq bir neçə mesaj göndərə bilər, bu böyük məlumatların və ya real vaxt yeniləmələrinin ötürülməsi üçün əlverişlidir.
Go dilində nümunə (server axını):
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
}