java.io.IOException: Broken pipe异常记录

现象
cat告警java.io.IOException: Broken pipe异常。

在这里插入图片描述

排查过程:
一、首先查了出现这个异常的原因,结果如下:
pipe是管道的意思,管道里面是数据流,通常是从文件或网络套接字读取的数据。
当该管道从另一端突然关闭时,会发生数据突然中断,即是broken。
所以发生的根本原因就是在对端已经关闭的管道里写数据。

二、什么场景发生?
1.其他同事的项目也有发生过该异常,是由于feign调用其他服务时,设置的1秒超时时间,请求超时引起。但是查看该接口并无调用其他服务,因此排除。

2.推测该接口请求时间长,客户端有设置超时时间自动断开连接。
询问前端,确实有timeout时间设置。但是设置的是20秒,发生该异常时后端接口返回时间一般在3-5秒之间,因此也排除这个原因。

3.在测试环境对请求该接口的页面进行测试,人为制造让这个接口的请求时间延长,再打开页面的瞬间关闭页面。此时后端服务仍然在处理请求,但是连接管道已关闭。再看后端日志,异常复现。

因此目前的推测是打开该页面时,时间过长,未等后端返回数据,用户就关闭了页面,导致连接中断。

解决方案:
后期对该接口进行优化,缩短请求时间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值