![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HttpClient
一颗向上的草莓
后台开发者,前端爱好者,个人博客:http://catchu.github.io
展开
-
HttpClient重试策略
一、背景 由于工作上的业务本人经常与第三方系统交互,所以经常会使用HttpClient与第三方进行通信。对于交易类的接口,订单状态是至关重要的。 这就牵扯到一系列问题: HttpClient是否有默认的重试策略?重试策略原理?如何禁止重试? 接下来,本文将从源码中探讨这些问题。源码下载地址:http://hc.apache.org/downloads.cgi,版本是4.5....原创 2019-09-25 20:56:30 · 849 阅读 · 0 评论 -
httpclient绕过证书调用https的解决方案
HttpClient直接调用https请求时会报错PKIX path building failed,这里采用一种绕过证书的方式解决。直接看代码:/***绕过验证**@return*@throwsNoSuchAlgorithmException*@throwsKeyManagementException*/publicsta...原创 2019-09-26 10:40:06 · 1251 阅读 · 0 评论 -
采用合适的IO流提高文件读取效率
现在有网络传输文件的需求,需要先将文件写出到服务器本地磁盘(需求见:https://blog.csdn.net/u014532775/article/details/101306634),采用传统的IO流速度较慢,在这做一个总结,不同场景和文件大小可以使用不同的方式。1.传统的IO读取方式: /** * 最传统的方式 40M文件 byte字节1024时平均220ms ...原创 2019-09-26 14:03:23 · 953 阅读 · 0 评论 -
HttpClient高并发下性能优化-http连接池
首先,明确两点:1.http连接池不是万能的,过多的长连接会占用服务器资源,导致其他服务受阻2.http连接池只适用于请求是经常访问同一主机(或同一个接口)的情况下3.并发数不高的情况下资源利用率低下那么,当你的业务符合上面3点,那么你可以考虑使用http连接池来提高服务器性能使用http连接池的优点:1.复用http连接,省去了tcp的3次握手和4次挥手的时间,极大降低请求响...原创 2019-09-26 14:22:57 · 1055 阅读 · 0 评论 -
java实现HTTP请求的三种方式
目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求,HttpClient3.1 是 org.apache.commons.httpclient下操作远程 url的工具包,虽然已不再更新,但实现工作中使用httpClient3.1的代码还是很多,HttpCl...原创 2019-09-26 14:35:14 · 286 阅读 · 0 评论 -
自定义HttpClient重试策略
场景应用目前程序中涉及到需要callback操作,product需要被动的接收consume的处理状态,为了最大程度的能够callback成功因此consume在http调用出现问题(如:服务不可用、异常、超时)情况下需要进行重试(retry request)。1、针对异常的重试例如:connect timed out/read timed outHttpClientBuilde...原创 2019-09-29 11:11:44 · 761 阅读 · 0 评论 -
高并发场景下HttpClient的优化
1.背景我们有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别。使用了httpclient来完成业务。之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在这里。先对比前后:优化之前,平均执行时间是250ms;优化之后,平均执行时间是80ms,降低了三分之二的消耗,容器不再动不动就报警线程耗尽了,清爽~2.分析项目的原实现比较粗略,就是每次请求时初始...原创 2019-09-29 11:21:08 · 719 阅读 · 0 评论