Spring Cloud 2.2.2 源碼之十九Ribbon執行原理五
基本流程圖
準備執行
服務器選完之後創建一個RibbonServer
,封裝一些信息,執行。
execute
創建RibbonLoadBalancerContext
上下文和狀態記錄器RibbonStatsRecorder
做點計時,最後調用最開始封裝的新請求的apply
方法:
InterceptingRequestExecution的execute
最後再包裝成ServiceRequestWrapper
,讓攔截執行器InterceptingRequestExecution
繼續執行。
最後內部就是發送請求給替換後的服務器了:
這樣基本的流程說完了,很多細節還是要自己看,比如負載均衡策略,其實有那麼多:
比如RandomRule
隨機選擇:
當然如果你要自定義規則,實現這個接口就好:
比如隨便寫一個:
注入,如果放在可掃描的包下就變成全局共享啦,另外一種就是用RibbonClient
註解指定,怎麼用就不多說了:
結果:
好了,其他的細節只能慢慢看啦,先知道基本原理吧,其他都不是大問題。
好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。