(一) 请求接口不稳定
1、测试环境是五六个服务部署在一台机器上
2、生产是部署在不同环境上
问题:
1、测试环境页面请求正常,下载文件正常
2、生产环境接口请求超时,文件下载损坏
排查:
1、页面接口请求不稳定,连续刷新请求,会有几次报错,根据报错排查,误以为是服务熔断,后续发现是生产ribbon配置漏加。
解决:
1、ribbon配置
ribbon.ConnectTimeout=120000
ribbon.ReadTimeout=30000
2、熔断部分代码逻辑修改,避免混淆,导致误判
3、文件下载损坏
(1)由于服务不稳定,获取文件流异常,前端blob接受生成文件异常
(2)文件下载流写法有问题,导致.docx文件下载损坏。
// while (is.read(buffer) > 0) {
// out.write(buffer);
// }
( 读取文件的时候,指定每次读取长度,如果长度不足,导致强行写入空字符破坏文件结构,修改如下,解决问题。)
int len = 0;
while((len = is.read(buffer)) >0){
out.write(buffer, 0, len);
}
网友评论