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
}