我应该创建多少个httpclient ?

本文关键字:httpclient 多少 创建 我应该 | 更新日期: 2023-09-27 18:06:56

最初我的代码在每个请求的using语句中创建了一个新的HttpClient。然后我读了几篇关于重用HttpClient来提高性能的文章。

以下是其中一篇文章的节选:

我不建议在Using块中创建HttpClient单个请求。当HttpClient被处理时,它会导致底层连接也要关闭。这意味着下一个请求必须重新打开连接。您应该尝试重用您的HttpClient实例。

http://www.bizcoder.com/httpclient-it-lives-and-it-is-glorious

在我看来,保持一个连接是开放的,只有当多个请求在一行到相同的地方是有用的-如www.api1.com。

我的问题是,我应该如何创建httpclient ?

我的网站在后端与大约十个不同的服务对话。

我应该创建一个单独的HttpClient供他们所有人使用,还是应该为我在后端使用的每个域创建一个单独的HttpClient ?

的例子:如果我与www.api1.com和www.api2.com交谈,我应该创建2个不同的HttpClient,还是只有一个HttpClient?

我应该创建多少个httpclient ?

实际上,处置HttpClient不会从连接池强制关闭底层TCP/IP连接。您的最佳性能场景是您所建议的:

  • 为你需要连接的每个后端服务或你的应用程序的生命周期保持一个HttpClient实例的活动。

  • 根据您对后端服务的详细信息,您可能还希望为该后端服务上的每个不同API都拥有一个客户端。(同一域中的API可以路由到各处)