java - Apache HttpClient - 需要使用 MultiThreadedHttpConnectionManager?

标签 java multithreading http apache-commons-httpclient

我有一个服务器,它接收来自客户端的请求,并根据请求连接到一些外部网站并执行一些操作。

我正在使用 Apache Commons HttpClient (v 2.0.2) 进行这些连接(我知道它很旧,但由于其他限制我不得不使用它)。

我的服务器不会收到频繁的请求。我认为它在第一次部署时可能会有很多请求。然后每天只会有几个请求。当偶尔有很多请求时,可能会偶尔出现突发情况。

所有连接都将是 3 个 URLS 之一 - 它们可能是 http 或 https

我正在考虑为每个请求使用单独的 HttpClient 实例

我是否需要使用通用的 HttpClient 对象并将其与 MultiThreadedHttpConnectionManager 一起用于不同的连接。 MultiThreadedHttpConnectionManager 究竟有何帮助 - 即使在您调用 releaseConnection 之后它是否仍保持连接打开状态?它会保持打开状态多长时间?

我所有的连接都将是 GET,它们最多将返回 10-20 个字节。我没有下载任何东西。我使用 HttpClient 而不是核心 java 库的原因是因为偶尔我可能想使用 HTTP 1.0(我认为 java 类不支持这个)而且我也可能想自动执行 Http 重定向.

最佳答案

我认为这完全取决于您的 SLA 是什么,以及性能是否在可接受/预期的响应时间内。您的解决方案可以毫无问题地运行,但如果您的应用程序需求随着时间的推移而增长,它就无法扩展。

使用 MultiThreadedHttpConnectionManager 是比必须管理 3 个独立的 HttpClient 对象更优雅/可扩展的解决方案。

关于java - Apache HttpClient - 需要使用 MultiThreadedHttpConnectionManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25666995/

相关文章:

c - 将 CURL 结果放入字符串而不是 STDOUT?

java - 如何重新格式化时间格式?

java - 中断异常 : what causes it?

php - 该站点是否阻止/忽略了我的 HTTP 请求?

java - 同步块(synchronized block)是否会导致所有写缓存刷新?

C#线程使用调用,卡住表单

python - 解析 HTTP 用户代理字符串

java - 在java中使用反射api解析xml

java - 尝试编译测试Javafx应用程序时出错

python - Python 中嵌套类的替代方法是什么