问题描述:
当前项目采用springWebflux框架其中微服务之间调用采用webClient方式,当前有个别接口会报 org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144 之前采取过设置
spring:
codec:
max-in-memory-size: -1
未生效。而后发现一种解决方案特此记录
问题解决:
构建WebClient时设置exchangeStrategies中codecs属性,自定义客户端 HTTP 消息读取器和写入器的列表。
具体代码
@Bean public WebClient webClient() { final int size = Integer.MAX_VALUE; final ExchangeStrategies strategies = ExchangeStrategies.builder() .codecs(codecs -> codecs.defaultCodecs().maxInMemorySize(size)) .build(); return WebClient.builder() .exchangeStrategies(strategies) .build(); }