问题描述:

    当前项目采用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();
   }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐