spring cloud微服務快速教程之(十四)spring cloud feign使用okhttp3--以及feign呼叫引數丟失的說明

大叔楊發表於2020-09-24

0-前言

  spring cloud feign 預設使用httpclient,需要okhttp3的可以進行切換

  當然,其實兩者效能目前差別不大,差別較大的是很早之前的版本,所以,喜歡哪個自己選擇;

1-實現

1-1、增加okhttp3依賴;

        <!-- feign 依賴-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.3.RELEASE</version>
        </dependency>
        <!-- feign okhttp 依賴-->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-okhttp</artifactId>
            <version>10.10.1</version>
        </dependency>

1-2-配置檔案增加配置,啟用okhttp3:

feign:
  httpclient:
    enabled: false
  okhttp:
    enabled: true

 

這樣就可以了,

有的文章還說要FeignOkHttpAutoConfiguration的配置類,那是多少年前的事情了,現在的版本早就不需要配置了,已經自動配置

要切換回httpclient,只需要把配置修改回來,或者直接刪掉配置和okhttp依賴就行;

 

2-關於Feign呼叫請求頭和引數丟失的說明

  這個問題是發現同事在專案中增加了配置類,用來解決feign呼叫header和query引數丟失問題,所以特別拿出來說明一下;

  其實,這些配置是多此一舉,是冗餘程式碼;

  why?

  因為那是歷史問題,是早期netflix套件中的feign才會出現的問題,

  具體點說,是com.netflix.feign,feign-httpclient:8.18.0及其下版本才會出現的問題,

  而現在,早就不用Netflix的feign了好嗎,現在用的都是io.github.openfeign的版本了,這些問題早就不存在了

  所以,什麼解決引數丟失問題,純屬多此一舉;

 

相關文章