Gateway请求体内存溢出问题
问题复现
把图片的base64需要存到数据库,发现直接请求后端是可以的,但是如果从网关走,发现不行,跟请求体的限制有关。
这里262144=256KB
Spring Cloud Gateway 默认没有明确限制请求体的大小,但会受到底层使用的 WebFlux 或 Reactor Netty 的限制。WebFlux 的默认内存缓冲区大小为 256KB,如果请求体超过这个大小,可能需要配置 spring.codec.max-in-memory-size
以避免内存溢出。
解决办法
spring:
codec:
max-in-memory-size: 20MB # 设置请求体的最大长度为 20MB
其他容器的长度
nginx:
Nginx 默认的请求体大小限制是 1MB。如果请求体超过这个大小,客户端会收到
413 Request Entity Too Large
错误。可以通过client_max_body_size
进行修改。