【问题标题】:Limits for codecs in spring春季编解码器的限制
【发布时间】:2020-11-18 09:44:25
【问题描述】:

我在使用 Web 客户端时遇到了以下异常。

org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144

这表明必须通过 MaxInMemorySize 属性增加编解码器限制。

我想了解如果 MaxInMemorySize 设置为 X,这是否意味着我们的应用程序会为每个请求预留 X 量的内存用于预先缓冲,或者内存是根据每个请求的响应大小动态分配的。

【问题讨论】:

    标签: java spring webclient httpresponse codec


    【解决方案1】:

    Spring 维护了一定数量的缓冲区,即 MaxInMemorySize(大约 250KB)。这可以通过向 application.properties / application.yml 添加属性来修改。

    示例:

    spring.codec.max-in-memory-size: 10MB

    通过添加这个,内存大小的最大值将增加到 10MB。

    回答你的问题,因为这是一个预定义的值,所以 spring 在内部创建了一些缓冲区,而不是为每个请求单独创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 2014-11-18
      • 1970-01-01
      • 2023-04-04
      • 2011-01-07
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多