【问题标题】:Spring Cloud Gateway - Streaming of Large RequestsSpring Cloud Gateway - 大请求的流式处理
【发布时间】:2022-01-13 09:04:14
【问题描述】:

问题

当向 Spring Cloud Gateway 发送一个大的 http 请求(例如 100MB)时,它会在将请求转发到下游服务之前将完整的请求读入内存吗?

假设/猜测

从内存消耗和时间来看,它似乎是这样工作的,但我在文档中找不到任何相关信息。谁能确认这个假设是否正确?

是否有解决方法/解决方案?

如果假设正确:是否可以在确定路由后立即让 Spring Cloud Gateway“流式传输”请求(例如,在读取标头之后)?因为当多个“大”请求同时进入时,将完整的请求读入内存很快就会变成瓶颈。或者对于这个问题还有其他推荐的解决方法吗?

【问题讨论】:

  • 除非您使用读取正文的过滤器或谓词,否则它应该流式传输

标签: spring-cloud spring-cloud-gateway


【解决方案1】:

感谢spencergibb的快速回复和提示!

实际上在我们的例子中是 RetryFilter 导致了我们观察到的效果。停用后,流工作正常,RetryFilter 的文档中甚至提到了内存限制。

根据文档,我希望过滤器默认仅应用于 GET 请求。但也许这是一个误会。删除过滤器绝对解决了我们的内存问题。

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 2020-01-14
    • 2020-04-30
    • 2020-10-06
    • 2019-10-21
    • 2020-03-09
    • 2021-05-09
    • 1970-01-01
    • 2019-12-11
    相关资源
    最近更新 更多