【问题标题】:Python gRPC: How to use the experimental single-threaded implementation?Python gRPC:如何使用实验性单线程实现?
【发布时间】:2021-11-22 16:42:38
【问题描述】:

我正在用 Python 构建一个 gRPC 服务,并尝试改进延迟指标。我通过 Python gRPC Performance Best Practices 发现了以下内容:

(实验性)可通过SingleThreadedUnaryStream channel option 获得一个实验性的单线程一元流实现,它可以为每条消息节省高达 7% 的延迟。

问题是链接指向位于experimental 文件夹中的类,没有任何使用说明。我搜索了手册(以及一般的 Github 存储库),但没有找到有关如何启用此功能的参考

如何在我的代码中使用或调用SingleThreadedUnaryStream 频道选项功能?

【问题讨论】:

    标签: python grpc


    【解决方案1】:

    在深入研究 gRPC 源代码后,以下似乎可行:

    from grpc import experimental
    
    channel_options = [(experimental.ChannelOptions.SingleThreadedUnaryStream, 1)]
    with grpc.insecure_channel(f"{HOST}:{PORT}", options=channel_options) as channel:
        stub = xxx_pb2_grpc.XxxStub(channel)
    

    但是,对延迟或吞吐量没有影响。

    【讨论】:

      猜你喜欢
      • 2021-01-22
      • 2017-12-12
      • 2017-05-31
      • 2016-11-18
      • 2017-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      相关资源
      最近更新 更多