怎樣配置Feign使用HttpClient

背景:

默認情況下,feign通過jdk中的HttpURLConnection向下遊服務發起http請求(詳見下圖,源碼詳見feign.Client.Default),這種情況下,由於缺乏連接池的支持,在達到一定流量的後服務肯定會出問題 

方案:

默認配置顯然不足以支撐生產環境的服務,因此我們需要使用更加完備的方案。下面我們以HttpClient作爲事例,來看一下怎樣改變feign的底層http方案 
1.pom文件增加feign-httpclient的依賴(請注意與feign-core的版本保持一致)

<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-httpclient</artifactId>
    <version>9.4.0</version>
</dependency>

2.application.properties配置激活

feign.httpclient.enabled=true
  • d

3.添加HttpClient配置(spring bean),請根據實際情況配置相關參數(例如最大連接數、超時時間等) 

通過以上3步後,HttpClient即可作爲feign的底層http方案,源碼如下圖(詳見:org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration) 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章