Feign status 400 reading 問題分析


背景:項目使用的是微服務架構,采用springboot來開發,所有的服務都是基於內嵌tomcat來運行

問題:項目部署到測試環境之后,偶爾在后台日志會看到這樣的日志:Feign status 400 reading XXXX content:

調查后發現是get請求參數太長的緣故,將參數打印出來,發現最長的有12KB,而內嵌tomcat對參數的默認限制是8K,在tomcat的org.apache.coyote.http11.AbstractHttp11Protocol類中定義了其默認值,如下:

/**
     * Maximum size of the HTTP message header.
     */
    private int maxHttpHeaderSize = 8 * 1024;
    public int getMaxHttpHeaderSize() { return maxHttpHeaderSize; }
    public void setMaxHttpHeaderSize(int valueI) { maxHttpHeaderSize = valueI; }

解決方案

  在Feign接口提供端的微服務中配置參數:

server:
  max-http-header-size: 20480

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM