Spring Cloud 2.2.2 源碼之二十三Feign執行原理二

Spring Cloud 2.2.2 源碼之二十三Feign執行原理二

創建負載均衡客戶端

最後一步了,創建客戶端,然後負載均衡,去執行。
在這裏插入圖片描述
先創建服務的客戶端:
在這裏插入圖片描述
CachingSpringLoadBalancerFactory工廠有個緩存,先從緩存中拿。沒有的話就用SpringClientFactory創建一個ILoadBalancer實例,其實就從服務名對應的容器裏獲取,這裏其實就是獲取ribbon的負載均衡器ZoneAwareLoadBalancer,如果沒有重試工廠的話就封裝成FeignLoadBalancer對象,放入緩存,並返回:
在這裏插入圖片描述
這個熟悉:
在這裏插入圖片描述

executeWithLoadBalancer執行

創建一個命令,然後執行,裏面也很深。
在這裏插入圖片描述

不過最後會執行到這裏,用負載均衡策略選服務器:
在這裏插入圖片描述
這裏熟悉了吧。
在這裏插入圖片描述
最後會回調這裏面:
在這裏插入圖片描述

FeignLoadBalancer的execute

其實就是FeignLoadBalancerexecute
在這裏插入圖片描述
最終居然是用HttpURLConnection來進行請求的。
在這裏插入圖片描述
好了,基本的流程說完了,其實就是動態代理,最後是HttpURLConnection處理的,細節可以慢慢看哦。

好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。