zoukankan      html  css  js  c++  java
  • 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秒


     
  • 相关阅读:
    moduleNotFoundError:No module named 'exceptions'
    python 给视频加入音频
    实现时间按要求次数增长‘2020-07-14 10:46:05’
    2020年第37周,6h,继续实现CBOW模型
    2020年第36周,3h,学习手工实现CBOW模型
    2020年第35周, 5.5h, 精读TKDE'16论文
    2020年第34周,13.5h,精读论文
    2020年第33周,3.5h,完成编写项目的测试文档和本周周报
    2020年第32周,8h,调研科研的新想法
    2020年第31周,19h,准备并完成seminar
  • 原文地址:https://www.cnblogs.com/richard713/p/9605583.html
Copyright © 2011-2022 走看看