Broken pipe异常分析及处理

  • 问题出现:生产上运行的系统业务正常,当在查询数据时,出现后台异常,检查后台日志出现Broken Pipe异常

        如图示:

  • Broken Pipe定义:通常发生在服务器端尝试向已关闭的套接字(客户端/端点)写入数据时失败;
  • 问题解决思路:(微服务系统架构,请求链路:浏览器请求->A服务->B服务务)
    • 首先A服务通过Feign调用B服务,但是B服务显示Broken Pipe异常,猜测超时引起;(Feign:声明式Http客户端)
    • 检查B服务该接口是否正常响应;
    • 检查B服务该接口处理耗时;
    • 检查A服务Feign配置的connection-timeout客户端最大等待时长;
  • 问题解决:
    • 调用该接口,B服务正常响应;
    • 检查耗时发现,B服务该接口因数据量过大,并联表查询过多表导致耗时大于A服务器Feign客户端默认链接时长,而关闭该连接,导致Broken Pipe异常
    • Feign客户端默认连接时长:2秒
    • 更改A服务Feign配置连接时长;
    • 重启系统,该请求可正常访问;
  • 问题解决方法:
    • 因联表导致的耗时可拆分多条语句查询并根据具体情况设置对应缓存,减少耗时;(针对个人而言,毕竟具体问题,具体分析)
    • 调整合适的连接时长;
    • 设置本地缓存+重试机制;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值