Joh*_*ohn 26 java httpclient pooling httpconnection
我正在使用Apache HTTP Client开发Java .
eri*_*yen 20
我最近几天都在研究这个问题,所以我想与大家分享一些"众所周知"的知识.
首先,在处理同一服务器时,建议使用单个HTTP客户端来执行请求.在您的帮助下PoolingHttpClientConnectionManager
,您的客户端可用于同时执行多个请求.可以在此处找到多线程请求执行的官方示例.
其次,HTTP/1.1(以及HTTP/1.0的增强版本)允许HTTP客户端在事务完成后保持连接打开,以便可以在将来的请求中重用它.这通常被称为持久连接.
此外,为了将客户端重用于多个请求,来自服务器的响应头通常包括一个属性调用Keep-Alive
,该调用包含当前连接将保持活动的时间.除此之外,Apache Http Client还为您提供了一个界面ConnectionKeepAliveStrategy
来自定义您自己的重用连接策略.
Tom*_*son 16
[假设Java和Apache的HttpClient]
使用ThreadSafeClientConnManager.将单个全局实例传递给每个HttpClient实例的构造函数.我认为将HttpClients本身集中在一起并不存在任何意义.
Man*_*N V 15
现在不推荐使用ThreadSafeClientConnManager,而是使用PoolingClientConnectionManager.
对于HttpClient 4x:
ThreadSafeClientConnManager ...管理客户端连接池,并且能够为来自多个执行线程的连接请求提供服务.
连接以每个路由为基础进行池化.管理员已经在池中提供持久连接的路由请求将通过从池租用连接而不是创建全新连接来提供服务.
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html
归档时间: |
|
查看次数: |
73068 次 |
最近记录: |