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

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

作者: 莫夏_b560 | 来源:发表于2019-08-11 19:04 被阅读0次

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/hwbsjctx.html