是否可以将具有 HttpClientFactory 的 http 客户端实例化为 gRPC 客户端?

问题描述 投票:0回答:2

为每次调用服务器创建一个 HttpClient 似乎不是一个好习惯。这是在这里评论:https://www.aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/

阅读关于HttpClientFactory的文档,https://www.nuget.org/packages/Grpc.Net.ClientFactory,据说客户端注册为transient,因此可以作为依赖属性注入。

好吧,如果客户端被创建为瞬态的,它会为每个需要使用该服务的视图模型创建,所以建议说 http 客户端的生命周期应该是应用程序的整个生命周期,它不是跟着。所以我想我应该将客户端注册为单身人士。

是否可以使用工厂将客户端注册为 singlton 而不是 transient?

谢谢。

c# .net grpc dotnet-httpclient
2个回答
0
投票

没有必要那样做。根据文档SDK:

管理底层的生命周期

HttpClientMessageHandler
.

服务应该正确管理套接字。


0
投票

我认为这篇文章不太适用于 gRPC。 MS gRPC 文档中的客户端性能部分说:

gRPC clients are lightweight objects and don't need to be cached or reused
。性能繁重的任务似乎是重新创建 gRPC 通道,它使用
HttpClientMessageHandler
类型。

© www.soinside.com 2019 - 2024. All rights reserved.