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秒


     
  • 相关阅读:
    多级指针类型
    核心转储(core dump)
    地址总线
    eda soa
    QT信号槽简易分析_如何查看与分析QT的源码实现
    The Meta-Object System Signals & Slots 信号槽机制
    可重入 threadsafe reentrant nonreentrant
    秘钥文件
    服务启动基本
    格言
  • 原文地址:https://www.cnblogs.com/richard713/p/9605583.html
Copyright © 2011-2022 走看看