zoukankan      html  css  js  c++  java
  • grpc stream剖析

    在grpc里可以指定一个服务器端的流方法。比如流视频传输。不是返回一个响应,而是返回零个或多个响应
    使用官方python版route guide例子,server端流模式,client端普通模式,
    经过如下小的修改,对实际的一些行为进行一些探究
    服务端
        i = 0   #新增
        def ListFeatures(self, request, context):
            global i #新增
            i = i + 1  #新增
            print(i)  #新增
    
            left = min(request.lo.longitude, request.hi.longitude)
            right = max(request.lo.longitude, request.hi.longitude)
            top = max(request.lo.latitude, request.hi.latitude)
            bottom = min(request.lo.latitude, request.hi.latitude)
    
            y=0  #新增
            for feature in self.db:
                y = y+1  #新增
                print(y)  #新增
                if (feature.location.longitude >= left and
                        feature.location.longitude <= right and
                        feature.location.latitude >= bottom and
                        feature.location.latitude <= top):
                    yield feature
    

     客户端

    def guide_list_features(stub):
        rectangle = route_guide_pb2.Rectangle(
            lo=route_guide_pb2.Point(latitude=400000000, longitude=-750000000),
            hi=route_guide_pb2.Point(latitude=420000000, longitude=-730000000))
        print("Looking for features between 40, -75 and 42, -73")
    
        features = stub.ListFeatures(rectangle)
        i=0  #新增
    
        for feature in features:
            i = i+1  #新增
            if i > 10:  #新增
              break  #新增
    
            print("get No.:%d" % i)
            print("Feature called %s at %s" % (feature.name, feature.location))
    

      

    1、client发起一次请求,server会返回多个响应,此时server方法执行几次
    1次
    2、若client只接收了一部分响应,server还会生成所有的响应吗
    不会,比如客户端解析了10个响应,服务端本应生成100个响应,但服务端可能只会产生20或30条响应,不会把所有的结果集全处理到响应里。就像流一样,下游的行为会影响上游情况
     
  • 相关阅读:
    运动习惯
    无伤跑法
    libopencv_videoio.so, need by /lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
    HI3536安装交叉编译工具链
    ubuntu源码安装cmake
    error: ‘CV_BGR2GRAY’ was not declared in this scope
    U8 EAI实现XML的生成
    一个关于车牌识别的文章,感谢作者的分享
    常用的PHP框架
    10款免费而优秀的图表JS插件
  • 原文地址:https://www.cnblogs.com/codetouse/p/14363335.html
Copyright © 2011-2022 走看看