通过Zuul

时间:2018-03-12 17:57:52

标签: netflix-zuul

我们使用Zuul作为API网关。 当直接调用服务时,下载流很好,但是当通过Zuul调用时,它似乎首先将文件下载到zuul然后从那里流式传输。这适用于大文件下载,特别是在GB中运行时,文件下载仅在Zuul过滤器中读取整个文件后开始,这使我们使用非常大的堆大小和其他性能问题。 我们调试了代码,看起来问题发生在

期间
private void writeResponse(InputStream zin, OutputStream out) throws Exception {
    byte[] bytes = buffers.get();
    int bytesRead = -1;
    while ((bytesRead = zin.read(bytes)) != -1) {
        out.write(bytes, 0, bytesRead);
    }
}

在org.springframework.cloud.netflix.zuul.filters.post.SendResponseFilter中。 读取循环,直到整个文件。我尝试将请求发送为/ zuul / ... 但没有任何帮助,如果有出路,请告诉我?我们完全陷入困境。 我们正在使用" Dalston.SR2"释放。

1 个答案:

答案 0 :(得分:0)

尝试此解决方案,这将禁用在Zuul端http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_uploading_files_through_zuul

中缓冲文件