HttpClient4
发布日期:2021-10-08 19:27:29 浏览次数:1 分类:技术文章

本文共 1300 字,大约阅读时间需要 4 分钟。

HttpClient4

HTTP Client4.0的ThreadSafeClientConnManager实现了HTTP连接的池化管理,其管理连接的基本单位是Route(路由),每个路由上都会维护一定数量的HTTP连接。这里的Route的概念可以理解为客户端机器到目标机器的一条线路,例如使用HttpClient的实现来分别请求 www.163.com 的资源和 www.sina.com 的资源就会产生两个route。缺省条件下对于每个Route,HttpClient仅维护2个连接,总数不超过20个连接,显然对于大多数应用来讲,都是不够用的,可以通过设置HTTP参数进行调整。

[java]   
 
 
  1. HttpParams params = new BasicHttpParams();  
  2. //将每个路由的最大连接数增加到200  
  3. ConnManagerParams.setMaxTotalConnections(params,200);  
  4. // 将每个路由的默认连接数设置为20  
  5. ConnPerRouteBean connPerRoute = new ConnPerRouteBean(20);  
  6. // 设置某一个IP的最大连接数  
  7. HttpHost localhost = new HttpHost("locahost"80);  
  8. connPerRoute.setMaxForRoute(new HttpRoute(localhost), 50);  
  9. ConnManagerParams.setMaxConnectionsPerRoute(params, connPerRoute);  
  10. SchemeRegistry schemeRegistry = new SchemeRegistry();  
  11. schemeRegistry.register(  
  12. new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));  
  13. schemeRegistry.register(  
  14. new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));  
  15. ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);  
  16. HttpClient httpClient = new DefaultHttpClient(cm, params);  


     


可以配置的HTTP参数有:

1)  http.conn-manager.timeout 当某一线程向连接池请求分配线程时,如果连接池已经没有可以分配的连接时,该线程将会被阻塞,直至http.conn-manager.timeout超时,抛出ConnectionPoolTimeoutException。

2)  http.conn-manager.max-per-route 每个路由的最大连接数;

3)  http.conn-manager.max-total 总的连接数;

转载地址:https://blog.csdn.net/p358278505/article/details/80689162 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:spring-boot tomcat logback日志
下一篇:我曾经七次鄙视自己的灵魂【卡里·纪伯伦】

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月21日 10时22分18秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章