偶现的org.apache.http.NoHttpResponseException 问题排查

生产环境访问第三方服务,偶现org.apache.http.NoHttpResponseException
原因:
HttpClient 默认使用长连接+连接池。
Http客户端无法及时响应服务端关闭连接,这次如果继续使用这条连接去请求服务端就会导致 org.apache.http.NoHttpResponseException。
虽然HttpClient采取了很多方式避免这种情况,例如请求前会校验超时时间、会读socket检测连接是否还在,但是边界情况总是无法避免(这一刻判断连接可用后,在请求发出去后,接收响应时又被断开了)

解决方案:
1.HttpClient支持配置重试策略HttpRequestRetryHandler ,当出现org.apache.http.NoHttpResponseException异常时重试请求。(顺丰的接口镔璟已经加过了,目前有调用顺丰外卖的接口偶尔会爆org.apache.http.NoHttpResponseException异常,但是都会重试)
2.改成短连接的方式请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值