Http连接池PoolingHttpClientConnectionManager的应用

博客通过测试对比,展示了使用Http连接池(PoolingHttpClientConnectionManager)与传统HttpURLConnection在调用接口时的时间消耗,证明了连接池能显著减少握手时间并提高效率。在uat环境中,连接池在正常及错误请求情况下都表现出更快的响应速度,降低了服务器资源消耗。
摘要由CSDN通过智能技术生成

前言

Http连接需要的三次握手开销很大, 传统的HttpURLConnection并不支持连接池, HTTP1.1以上默认开启keepalive, 对于现在springcloud横行的社会, feign可以配置好http连接池, 不过总会有某些个别的接口不在服务中, 还有一些非springboot的老旧项目也要加入cloud大家族中, 对于内部频繁访问的url地址, 这就需要一款量身定做的工具类了.

讲解

先来看看测试效果, 两种工具类的时间消耗对比.

这个是测试用的方法, 前后分别调用了某一接口100次, 进行时间统计, 系统页面按F12能看到平均握手速度大概是3ms
long start = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
   
    result = commonManager.getPolicyGoNew(inputStr);
}
long end = System.currentTimeMillis();
System.out.println(String.valueOf(end - start));

System.out.println("***********");

long start2 = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
   
    result = commonManager.getPolicyGo(inputStr);
}
long end2 = System.currentTimeMillis();
System.out.println(String.valueOf(end2 - start2));
100次快了647ms, 平均一次6ms, 握三次手大概要这么久吧
9612
***********
10259
第二次我调换了顺序, 500.for, 500次快了2341ms, 平均一次4.6ms, 更接近3ms了
50906
***********
48565
52327
***********
47021
错误的请求数据, 可以立马返回数据, 更能说明是否节省了握手时间
9625
***********
8868
9251
***********
8718
不过我之前都是调用的生产环境的接口, 效率还是比较高的, 下面我在uat环境测试一下
正常查询详情数据消耗时间

500次快了4900ms, 平均一次10ms

72712
***********
67839
错误的请求数据, 可以立马返回数据, 更能说明是否节省了握手时间

500次快了2400ms, 平均一次4.8ms

6439
***********
4063

代码

原httputil, 看实现部分就好

import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.utils.HttpClientUtils;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;

import java.util.Map;

public class HttpUtils {
   

	public interface ResponseCallback {
   
		void onResponse(CloseableHttpResponse response) throws Exception;
		void onError(int resultCode, String resultStr
下载和安装VMware虚拟机,你可以按照以下步骤进行操作: 1. 首先,你需要进入VMware官网,点击下载,选择你需要的产品版本。 2. 在下载页面上,选择适合你操作系统的版本,比如Windows系统,然后点击下载。 3. 下载完成后,双击下载的安装程序,按照提示进行安装。 4. 安装完成后,打开VMware虚拟机。你可以在安装过程中选择安装位置和其他设置,根据自己的需求进行配置。 5. 一旦打开了VMware虚拟机,你可以创建一个新的虚拟机或导入一个现有的虚拟机镜像文件。这些选项可以帮助你在虚拟机中安装操作系统和进行其他设置。 6. 如果你需要安装Ubuntu操作系统,你可以在VMware虚拟机下载Ubuntu镜像文件并设置虚拟机的配置参数。 7. 安装完成后,你就可以在VMware虚拟机中运行Ubuntu操作系统了。 综上所述,这是一个简单的VMware虚拟机下载安装教程。你可以根据上述步骤进行操作,并根据自己的需求进行相应的设置和配置。希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [VMware虚拟机安装Ubuntu 2022最新版详细图文安装教程(VMware虚拟机安装+Ubuntu下载+VMware虚拟机配置运行)](https://blog.csdn.net/qq_51646682/article/details/124787486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [最新超详细VMware虚拟机下载与安装图文教程](https://download.csdn.net/download/weixin_38508126/12898810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [全网最详细的VMware虚拟机下载安装教程](https://blog.csdn.net/weixin_43510203/article/details/115750050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值