Sobes.tech
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
}