Junior — Middle
gRPC'da serverdan ma'lumot uzatish rejimi va yagona chaqiriq o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
gRPC'da bir nechta ma'lumot uzatish rejimlari ajratiladi:
-
Bir martalik chaqiriq (Unary RPC): mijoz bir so'rov yuboradi va bir javob oladi. Bu klassik so'rov-javob.
-
Server strimingi (Server Streaming RPC): mijoz bir so'rov yuboradi va server javob sifatida ma'lumotlar oqimini yuboradi. Mijoz kelayotgan xabarlarni o'qiydi, server oqimini tugatguniga qadar.
Farqlar:
- Bir martalik chaqiriqda, almashinish faqat bir marta bo'ladi — so'rov va javob.
- Server strimingida, server bitta so'rovga javoban bir nechta xabar yuborishi mumkin, bu katta ma'lumotlarni yoki real vaqt yangilanishlarini uzatishda qulay.
Go tilida misol (server strimingi):
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
}