Sobes.tech
Junior — Middle

gRPC'de sunucu akış veri iletim modu ile tek seferlik çağrı arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

gRPC'de birkaç veri iletim modu ayırt edilir:

  • Tek Seferlik Çağrı (Unary RPC): istemci bir istek gönderir ve bir yanıt alır. Bu klasik istek-yanıt modelidir.

  • Sunucu Akışlı (Server Streaming RPC): istemci bir istek gönderir ve sunucu bir mesaj akışıyla yanıt verir. İstemci, mesajlar gelmeye devam ederken okur, sunucu akışı tamamlayana kadar.

Farklar:

  • Tek seferlik çağrıda, iletişim sadece bir kez gerçekleşir — istek ve yanıt.
  • Sunucu akışında, sunucu tek bir isteğe yanıt olarak birkaç mesaj gönderebilir, bu büyük veri hacimlerinin veya gerçek zamanlı güncellemelerin iletimi için kullanışlıdır.

Go dilinde örnek (sunucu akışı):

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
}