使用PoolingHttpClientConnectionManager解决httpclient的多线程请求问题
直接上代码
1.主程序
public class TestMain {public static void main(String[] args) throws NSQException, TimeoutException {ExecutorService pool = Executors.newCachedThreadPool();// http请求PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();cm.setDefaultMaxPerRoute(800);// 设置每个路由基础的连接cm.setMaxTotal(1000);//设置最大连接数//cm.setMaxPerRoute(new HttpRoute(httpHost), maxRoute);// 设置目标主机的最大连接数CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build();for (int i = 0; i < 1000; i++) {TestRunnable tmp = new TestRunnable(httpClient);new Thread(tmp).start();}} }
2.线程使用httpclient进行post请求,其中调用的post请求具体实现已经做了封装,可参考我之前的文章
class TestRunnable implements Runnable {private final CloseableHttpClient httpclient;public TestRunnable(CloseableHttpClient httpClient) {this.httpclient = httpClient;}@Overridepublic void run() {String id = "444";String name = "testName";Map<String, String> param = new HashMap<String, String>();param.put("id", id);param.put("name", name);String result = HttpClientUtil.doHttpPost("http://ip:port/testapi", param,httpclient);System.out.println(result);}}
转载于:https://www.cnblogs.com/JoeyWong/p/9056346.html
使用PoolingHttpClientConnectionManager解决httpclient的多线程请求问题相关推荐
- 如何解决httpclient调用https请求报错
public static CloseableHttpClient getClient() {SSLContext sslContext = null;try {sslContext = new SS ...
- 《HttpClient官方文档》2.4 多线程请求执行
2.4.多线程请求执行 当HttpClient拥有类似PoolingClientConnectionManage类这样的池连接管理器,它就能够使用多线程来并发执行多个请求. PoolingClient ...
- httpClient多线程请求
使用httpClient可模拟请求Url获取资源,使用单线程的请求速度上会有一定的限制,参考了Apache给出的例子,自己做了测试实现多线程并发请求,以下代码需要HttpClient 4.2的包,可以 ...
- HttpClient在多线程环境下踩坑总结
HttpClient在多线程环境下踩坑总结 问题现场 在多线程环境下使用HttpClient组件对某个HTTP服务发起请求,运行一段时间之后发现客户端主机CPU利用率呈现出下降趋势,而不是一个稳定的状 ...
- java httpclient form_Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)...
public classHttpClientUtils {private final static Logger logger = Logger.getLogger(HttpClientUtils.c ...
- Java爬虫(二)-- httpClient模拟Http请求+jsoup页面解析
博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye 写博客 发Chat 传资源 登录注册 原 Java爬虫(二)-- httpClient ...
- C#中通过HttpClient发送Post请求
C#中HttpClient进行各种类型的传输 我们可以看到, 尽管PostAsync有四个重载函数, 但是接受的都是HttpContent, 而查看源码可以看到, HttpContent是一个抽象类 ...
- httpclient的post请求超时
前两天做项目,使用httpclient的post请求超时,检查代码也没问题.后来偶然在看日志的时候才发现问题所在. 现象 当post请求的返回数据少的时候应用没问题.当post请求返回的数据量在deb ...
- HttpClient发送Https请求报 : unable to find valid certification path to requested target
一.场景 近期在对接第三方接口时,通过HttpClient发送Https请求报 : unable to find valid certification path to requested tar ...
- Ionic3学习笔记(十三)HttpClient 实现 HTTP 请求以及踩过的一些坑
本文为原创文章,转载请标明出处 目录 猫眼API HttpClient 实现 HTTP 请求 安装 HttpClientModule 模块 创建 provider 创建 page 一些坑 坑1: 未在 ...
最新文章
- DCS系统接地应用讨论
- 3D模型“换皮肤”有多简单?也就一句话的事
- 发现一位大佬的算法刷题笔记PDF
- python调用所有函数_python打印所有函数调用以了解脚本
- CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
- linux时间调整为dst,Linux上系统时间函数、DST等相关有关问题总结
- bootstrap+fileinput插件实现可预览上传照片功能
- linux 注销其它用户,linux下注销其它用户或者tty的命令
- java控制单元测试_java – 当单元测试控制器时,模拟一个Spring Validator
- html点击计数器的实现,点击计数器_Servlet 教程_w3cschool
- Xshell 登录 AWS CentOS 出现“所选择的用户秘钥未在远程主机上注册“,最终解决办法!...
- Git 笔记——如何处理分支合并冲突
- GridView选中,编辑,取消,删除代码
- 2022年C语言教程入门和最新C语言自学教程C语言进阶教程大全
- AutoJs 4.1.1 实战教程
- 未转变者入侵服务器后台,未转变者(unturned)联机服务器创建方法
- 租房退租时,房东不退押金怎么办?
- 试用期没到辞职有工资吗?
- 网线简介及交换机原理和模式浅谈
- Steam上不去商店和社区的方法 / SteamCommunity 443/80端口被占用报错解决办法
热门文章
- XXL-JOB 针对未授权访问导致远程命令执行漏洞的声明
- Error: Cannot find module 'chalk' 或Cannot find module 'semver'报错
- 无法保存关闭文件 苹果电脑 显示正在保存_??Linux文件编辑 - 给你骨质唱疏松
- python join用法
- PHP API微信网页授权接口实现
- php解析html类库simple_html_dom(2)
- 欢迎给吾博客评分:如果遇见且有帮助,请帮忙打分
- 全网首发:编译jna:dispatch.h:30:34: fatal error: com_sun_jna_Function.h: 没有那个文件或目录
- 搞乱别人精美的代码,一点数没有?
- 多个so合并为一个so的思路