springcloud: feign原理

首先,通過@EnableFeignClients註解並開啟掃描,將註解了@FeignClient的接口信息通過BeanUtils生成bean注入到IOC容器;

當接口被調用時候,通過jdk動態代理,生成具體的requestTemplate,requestTemplate生成request,request交給Client處理,可以是httpUrlConnection或者是okhttp,最後client被封裝到LoadBalanceClient類,這個類結合了ribbon做到了負載均衡;

RestFul風格,簡潔

dubbo的RPC調用性能更快,但是代碼強依賴性,迭代不是很方便

Feign有其他的一些功能實現,比如錯誤處理,重試機制,hystrix擴展,ribon擴展等等

Feign實際上是整合了ribbon客戶端負載均衡+hysterix斷路器


分享到:


相關文章: