springcloud服务请求报超时失败和文件下载损坏

2019-08-11  本文已影响0人  莫夏_b560

(一) 请求接口不稳定
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);
                    }
上一篇 下一篇

猜你喜欢

热点阅读