gpt4 book ai didi

c# - gRPC:我应该为整个应用程序使用一个客户端吗?

转载 作者:太空狗 更新时间:2023-10-30 01:12:38 30 4
gpt4 key购买 nike

我知道 gRPC 团队建议我们在整个应用程序中使用单一 channel ,这正是我们要做的。但是我们不确定在构造函数上接收此 channel 的客户端类。最佳做法是什么:

  • 每次调用都创建一个客户端类的新实例
  • 每个线程使用一个客户端实例
  • 在整个应用程序中使用单个客户端(与我们在 channel 中使用的方式相同)

我们对使用第一种方法很感兴趣,但我们不知道创建客户端类的新实例是否也是一个代价高昂的操作。

最佳答案

客户端本质上只是 CallInvoker 的包装器,如果您从 Channel 开始,它将是 DefaultCallInvokerDefaultCallInvoker 只是Channel 的包装器,没有状态或复杂性。客户端和调用调用者都没有添加同步之类的东西,因此与新客户端对话的行为与与共享 channel 的现有客户端对话的行为相同。

结论:创建一个新的客户端/调用调用程序并不十分昂贵,但如果您想减少额外的 2 次分配,您应该能够共享客户端,而不会出现明显的差异。

关于c# - gRPC:我应该为整个应用程序使用一个客户端吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57110742/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com