1. 程式人生 > 其它 >Spring Cloud Alibaba - Feign

Spring Cloud Alibaba - Feign

Feign

Feign簡介


使用Feign實現消費者客戶端


使用Feign+Ribbon實現客戶端負載均衡

底層的負載均衡策略還是使用Ribbon通過Feign進行呼叫


Feign的相關配置

ribbon.eager-load.enabled=true

開啟飢餓載入,預設是懶載入此項為false關閉狀態,在呼叫的時候才開始獲取服務列表進行負載均衡策略,所以第一次呼叫會比較緩慢,後面再次呼叫的速度會有大幅度提升。若設定為true開啟狀態,則從專案啟動的時候就開始獲取服務列表並且進行負載均衡策略,所以第一次呼叫並不會出現遲緩現象。

ribbon.eager-load.clients=xxxxxxxxxx

為哪些客戶端開啟飢餓載入,多個客戶端使用逗號隔開(非必須),xxxxxxxx為客戶端的服務名稱。不配置的話如果配置了開啟飢餓載入,則所有的客戶端都開啟

feign.client.config.default.read-timeout=2

設定feign讀取時間為2 單位為毫秒,設定過小會出現讀取超時現象

feign.client.config.default.connect-timeout=2

配置feign連線時間為2單位為毫秒,超過實現就不再連線

feign.client.config.default.logger-level=full

設定feign的日誌記錄等級

tips:default代表使用於所有服務

feign.client.config.[name].read-timeout=5

feign.client.config.[name].connect-timeout=5

配置具體服務的連線和讀取時限,name為對應的服務名稱

feign.httpclient.enabled=true

預設值也為true,代表是否使用預設的底層為Apache Http的客戶端使用Feign

feign.httpclient.max-connections=200

指定客戶端最大連線數

feign.httpclient.max-connections-per-route=50

指定每個路由路徑的最大連線數

tips:feign的老版本底層採用的JDK的httpURLconnection發起遠端呼叫,效率不如restTemplate,新版本效率差不多


脫離Ribbon的Feign遠端呼叫

無負載均衡功能,只能使用遠端呼叫

需要在@FeignClient註解中配置url屬性,需要將連線地址寫死。並且在介面中的方法上@GetMapping後面也不需要加路徑,這樣方法會自動呼叫url中的路徑。


Feign的宣告程式碼統一封裝

實際開發時,會將有關於Feign的宣告程式碼統一放入一個專案模組xxxxx-common中管理。實現程式碼複用,減少冗餘。common模組中也需要引入相應的jar包依賴。