Feign源碼解析系列-最佳實踐

前幾篇準備寫完feign的源碼,這篇直接給出Feign的最佳實踐,考慮到目前網上尚未一個比較好的實踐解釋,對於新使用spring cloud的同窗會對微服務之間的依賴產生一些迷惑,也會走一些彎路。這裏給出目前本人在公司推薦的最佳實踐,供各位參考。

1,服務提供方在Facade層定義好接口信息,包括接口路徑,請求方式,入參,出參,返回錯誤等,並提供jar。

2,服務調用方項目引入提供方Facade層的jar,在本身項目中抄一份接口的定義,再包一層代理提供給本身業務層調用。 抄一份雖說看起來不是很優雅,可是也有個好處對外部依賴是能夠控制的,代碼也會清晰。一方面緣由,若是你嘗試想直接依賴jar來引入Feign client 那麼在EnableFeignClients註解的basePackages須要更改,若是依賴不斷增多這個值也會不斷變更。還有更重要的緣由是,咱們知道fallback的定義在Feign client接口上定義的,在調用方配置fallback纔是更加合理,若是打入jar,那就沒法實現fallback的配置了。

3,服務提供方打的facade jar包中不須要提供Fallback能力,由調用方配置實現Fallback,推薦使用FallbackFactory,緣由是create方法能夠細化異常的判斷。

4,在調用方上寫的Feign proxy 須要對響應的返回值或異常進行處理後再提供給本身上層業務代碼調用。接口的異常返回內容推薦在方法上進行詳細的註釋,咱們約定接口返回的標準參數,好比code能夠斷定接口返回的實際狀況,由上層調用方進行判斷轉換成本身的業務。

5,最後關於feign的默認配置好比請求超時時間等,最好是在配置中心進行全局配置一份,各個應用本身能夠覆蓋配置。
相關文章
相關標籤/搜索