最後一步了,創建客戶端,然後負載均衡,去執行。
先創建服務的客戶端:
CachingSpringLoadBalancerFactory
工廠有個緩存,先從緩存中拿。沒有的話就用SpringClientFactory
創建一個ILoadBalancer
實例,其實就從服務名對應的容器裏獲取,這裏其實就是獲取ribbon
的負載均衡器ZoneAwareLoadBalancer
,如果沒有重試工廠的話就封裝成FeignLoadBalancer
對象,放入緩存,並返回:
這個熟悉:
創建一個命令,然後執行,裏面也很深。
不過最後會執行到這裏,用負載均衡策略選服務器:
這裏熟悉了吧。
最後會回調這裏面:
其實就是FeignLoadBalancer
的execute
:
最終居然是用HttpURLConnection
來進行請求的。
好了,基本的流程說完了,其實就是動態代理,最後是HttpURLConnection
處理的,細節可以慢慢看哦。
好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。