java - 春季编解码器的限制
问题描述
使用 Web 客户端时出现以下异常。
org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
这表明必须通过MaxInMemorySize属性增加编解码器限制。
我想了解 MaxInMemorySize 是否设置为 X,这是否意味着对于每个请求,我们的应用程序都会预留 X 量的内存用于预先缓冲,或者内存是根据每个请求的响应大小动态分配的。
解决方案
Spring 维护一些缓冲区,即 MaxInMemorySize(大约 250KB)。这可以通过向 application.properties / application.yml 添加属性来修改。
例子:
spring.codec.max-in-memory-size: 10MB
通过添加这个,内存大小的最大值将增加到 10MB。
来到你的问题,因为这是一个预定义的值,所以 spring 在内部创建了一些缓冲区,而不是为每个请求单独创建。
推荐阅读
- javascript - 如何在给定数组上使用方法之前省略检查数组长度?
- kubernetes - 无法获取我的 kubernetes 主节点的 externalID(即 aws 提供的 instanceId)
- recursion - 树的树的时间复杂度 [...]
- .net - 模型优先的方法,在 SQL 脚本中不生成属性的默认值
- python - Tkinter 以与扩展相同的方式缩小窗口以适应框架?
- python - 返回字典的 Python sorted() 函数 - 代码优化
- java - 如何使用可打印字符生成 32 位随机密码?
- julia - 在 Julia 中使用 PyPlot 时,我们如何删除绘图周围的框?
- javascript - Google Cloud Functions 和 AWS Lambda 的超时问题
- python - 代码中的列表索引超出范围错误