connection reset by peer问题解决

        前段时间接手一个老项目,在观察项目日志时发现经常会出现connection reset by peer的错误,字面上理解就是网络连接重置,从而导致请求中断。要想解决问题首先要明白出现问题的原因,reset产生的原因这里就不在叙述,网上有很多这方面的文章,大家可以自行阅读。
        回到这个项目,在项目中使用的是HttpClient进行请求,启用了连接池。既然使用了连接池,那么每个连接就一定有自己的存活时间,从而实现连接的复用,降低资源消耗。我猜测问题就出现连接复用上,可能存在这种情况:虽然连接在我方平台是存活的,可以直接复用,但是无法保证对方是否已经关闭这个连接。如果对方关闭了这个连接,而我方还继续使用这个连接去请求,那就回收到reset的反馈信息。有了这个想法之后就要去验证它,于是我为连接池增加了一个配置:StaleConnectionCheckEnabled,将这个参数设置为true,意思就是在每次请求前先去判断这个连接是否可用。设置这个参数之后reset的问题就没有复现过,看来我的猜测是正确的,就是由于连接复用的问题导致了连接reset。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值