使用 HttpClient 的 Java 中的连接池 [已关闭]
2022-09-01 05:43:11
- 如何使用 HttpClient 创建连接池?
- 我必须经常连接到同一台服务器。是否值得创建这样一个池?
- 是否可以保持HTTP连接处于活动状态并将其用于各种请求,如果是,我该怎么做?
我最近几天都在研究这个问题,所以只是想和你分享一些“众所周知”的知识。
首先,由于您正在处理同一服务器,因此建议使用单个HTTP客户端来执行您的请求。在 的帮助下,您的客户端可用于同时执行多个请求。多线程请求执行的官方示例可以在这里找到。PoolingHttpClientConnectionManager
其次,HTTP/1.1(以及 HTTP/1.0 的增强版本)允许 HTTP 客户端在事务完成后保持连接打开状态,以便可以在将来的请求中重用它。这通常称为持久连接。
此外,为了将客户端重用于多个请求,来自服务器的响应标头通常包含一个属性调用,该属性调用包含当前连接保持活动状态的时间。除此之外,Apache Http Client还为您提供了一个界面,用于自定义自己的策略以重用连接。Keep-Alive
ConnectionKeepAliveStrategy
PoolingClientConnectionManager
现已弃用 。从(4.3 版本)使用 。PoolingHttpClientConnectionManager