使用 HttpClient 的 Java 中的连接池 [已关闭]

2022-09-01 05:43:11
  • 如何使用 HttpClient 创建连接池?
  • 我必须经常连接到同一台服务器。是否值得创建这样一个池?
  • 是否可以保持HTTP连接处于活动状态并将其用于各种请求,如果是,我该怎么做?

答案 1

我最近几天都在研究这个问题,所以只是想和你分享一些“众所周知”的知识。

首先,由于您正在处理同一服务器,因此建议使用单个HTTP客户端来执行您的请求。在 的帮助下,您的客户端可用于同时执行多个请求。多线程请求执行的官方示例可以在这里找到。PoolingHttpClientConnectionManager

其次,HTTP/1.1(以及 HTTP/1.0 的增强版本)允许 HTTP 客户端在事务完成后保持连接打开状态,以便可以在将来的请求中重用它。这通常称为持久连接

此外,为了将客户端重用于多个请求,来自服务器的响应标头通常包含一个属性调用,该属性调用包含当前连接保持活动状态的时间。除此之外,Apache Http Client还为您提供了一个界面,用于自定义自己的策略以重用连接。Keep-AliveConnectionKeepAliveStrategy


答案 2

PoolingClientConnectionManager现已弃用 。从(4.3 版本)使用 。PoolingHttpClientConnectionManager


推荐