RestTemplate对HTTP请求优化

最近在对公司服务器进行压测,环境ubuntu20.0 使用ab进行对小程序接口进行压测(对小程序接口的压测使用同一个wx.login 凭证code 后端代码处理一下如果code无效就返回一个默认的openid(这种方法适用于测试)就可以模拟登录了)在进行压测时tps低的离谱才几十 后对代码进行分析 找到问题所在 在小程序去code2session时这个请求居然响应时间高达五六百毫秒 http是我们自己封装的一个工具类 后来使用RestTemplate的请求响应时间降低到了几十毫秒 小面上代码

public class RestTemplateAutoConfiguration {

    @Resource
    RestProperties restProperties;

    @Primary
    @Bean
    public RestTemplate buildRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();

        HttpComponentsClientHttpRequestFactory hcchrf = new HttpComponentsClientHttpRequestFactory();
        // 指定连接池配置,否则线上容易出现请求排队导致接口超时问题
        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
        connectionManager.setMaxTotal(restProperties.getMaxTotal());
        connectionManager.setDefaultMaxPerRoute(restProperties.getDefaultMaxPerroute());
        hcchrf.setHttpClient(
                HttpClientBuilder.create()
                        .setDefaultRequestConfig(RequestConfig.custom().setSocketTimeout(restProperties.getScoketTimeOut()).setConnectTimeout(restProperties.getConTimeOut()).setConnectionRequestTimeout(restProperties.getRequestTimeOut()).build())
                        .setConnectionManager(connectionManager)
                        .setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy())
                        .build());
        restTemplate.setRequestFactory(hcchrf);
        return restTemplate;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值