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秒


     
  • 相关阅读:
    git 账号密码
    sql server 备份
    计算经纬度的两点之间的距离
    redis 安装
    webapi 可空参数
    Asp.Net MVC4 使用Unity 实现依赖注入
    sublime主题推荐
    分解质数因子
    如何在sublime+chrome中调试php代码?
    php的mysql语句里变量加不加单引号问题
  • 原文地址:https://www.cnblogs.com/richard713/p/9605583.html
Copyright © 2011-2022 走看看