Gateway 报错org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes..

本文介绍了在Spring Boot 2.6.6和Spring Cloud Gateway 3.1.1环境下,遇到Gateway请求参数大小超过限制的问题。升级架构后,默认限制变为256KB。尝试了设置配置文件和添加配置Bean的解决方案无效,最终通过创建自定义配置类成功解决问题。原因是设置的`maxInMemorySize`导致原有Readers实现被替换,应在初始化时配置,避免过滤器方法中设置以防止性能损耗。
摘要由CSDN通过智能技术生成

Spring Boot 版本:2.6.6

Spring Cloud Gateway 版本:3.1.1

由于在 Gateway 的自定义过滤器中重写了请求 ServerRequest,后面因为升级了架构,原本旧版本未对请求参数的大小进行限制(默认取-1),后面升级了新版修改为 256KB 的限制。

解决方案如下:

方案一跟二对于我当然版本的 SpringBoot 不生效,大家可以都尝试一下,有可能可以。

一、设置配置文件(失败)

spring:
  codec:
    max-in-memory-size: 50MB

二、添加配置 Bean(失败)

@Configuration
@EnableWebFlux
public class WebFluxWebConfig implements WebFluxConfigurer
{
   
	@Override
	public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
   
		configurer.defaultCodecs().maxInMemorySize(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值