• http性能测试


    http client和http pool都是在局域网向一台tomcat发送

    1:http client

    public static String callPostJson(String url, String json) {
    HttpClient client = new HttpClient();
    client.getParams().setContentCharset("utf-8");
    client.getHttpConnectionManager().getParams().setSoTimeout(timeout);
    PostMethod post = new PostMethod(url);
    String result = StringUtils.EMPTY;
    try {
    RequestEntity entity = new StringRequestEntity(json,"application/json","UTF-8");
    post.setRequestEntity(entity);
    post.setRequestHeader("Content-Type","application/json;charset=UTF-8");
    client.executeMethod(post);
    result = post.getResponseBodyAsString();
    } catch (SocketTimeoutException se) {
    logger.error(se.getMessage(), se);
    throw new ServiceException("connection.timeout");
    } catch (Exception ex) {
    logger.error(ex.getMessage(), ex);
    return "{"success":"false","msg":"" + ex.getMessage() + ""}";
    } finally {
    post.releaseConnection();
    }
    return result;
    }

    测试结果;5000条耗时43秒
    2:http pool

    client工厂
    private static CloseableHttpClient httpClient;
    private static PoolingHttpClientConnectionManager cm;

    static {
    cm = new PoolingHttpClientConnectionManager();
    cm.setMaxTotal(500);
    cm.setDefaultMaxPerRoute(50);
    final RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(1000).setConnectionRequestTimeout(500).build();
    httpClient = HttpClients.custom().setConnectionManager(cm).setDefaultRequestConfig(requestConfig).build();
    }

    public static CloseableHttpClient getHttpClient() {
    return httpClient;
    }


    http工具类
    public static void callPostJson(String url, String param) {
    CloseableHttpClient httpClient = HttpPoolFactory.getHttpClient();
    HttpPost post = new HttpPost(url);
    try {
    StringEntity s = new StringEntity(param);
    s.setContentEncoding("UTF-8");
    s.setContentType("application/json");//发送json数据需要设置contentType
    post.setEntity(s);
    httpClient.execute(post);
    } catch (Exception e) {
    logger.error(e.getMessage(), e);
    } finally {
    post.releaseConnection();
    }
    }
    测试结果;5000条耗时21秒


     
  • 相关阅读:
    小程序 的授权登陆
    ant desgin pro 项目中的 数据流方案
    new Date() 日期格式处理
    小程序手写 的选择日期 区间
    小程序中的slot(插槽)
    微信小程序实现城市选择和城市切换
    微信小程序 使用页面栈 修改上一个页面的data数据
    2021/2/25
    2021/2/24
    2021/2/23
  • 原文地址:https://www.cnblogs.com/richard713/p/9605583.html
Copyright © 2020-2023  润新知