Feign

什么是Feign?

Feign被集成到SpringCloud Netflix模塊,當Eureka,Ribbon集成的時候呢,F(xiàn)eign就具備了負載均衡的功能。Feign本身使用就很簡便,再加上與SpringCloud的整合,將很大程度上降低了我們開發(fā)的工作量。

它是Github上面的一個開源項目,目的是為了簡化WebService客戶端的開發(fā),在使用Feign的時候 可以使用注解來修飾接口,被修飾的接口就具有了訪問webservice的能力,這些注解呢 可以使用Feign的自帶注解,也可以支持使用第三方的注解。Feign還支持插件式的編碼器和解碼器,使用者可以通過這些特性,對請求和響應(yīng)進行封裝和解析。

總之Feign是一個客戶端,F(xiàn)eign可以使用注解來修飾接口,被修飾的接口就有訪問WebService的能力。

例如:@FeignClient。

Spring Cloud Feign 之 Fallback

環(huán)境信息: java 1.8、Spring boot 1.5.10.RELEASE、spring cloud-Edgware.SR3、maven 3.3+

在網(wǎng)絡(luò)請求時,可能會出現(xiàn)異常請求,如果還想在異常情況下使系統(tǒng)可用,那么就需要容錯處理,比如:網(wǎng)絡(luò)請求超時時給用戶提示"Server error"請稍后重試。

Spring Cloud Feign 就是通過Fallback實現(xiàn)的,有兩種方式:

1、在Feign接口層上方標注@FeignClient(value = "zookeeper-server",fallback = FeignFallback.class),并且指定一個實現(xiàn)Feign接口的實現(xiàn)類。

2、在Feign接口上方標注@FeignClient.fallbackFactory = UserFeignFactory.class指定一個實現(xiàn)FallbackFactory<T>工廠接口類。(配合1使用,可以獲取HTTP請求錯誤狀態(tài)碼和信息)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容