ribbon源碼分析

對於ribbon的使用我們只需要在RestTemplate的申明上面加上 @LoadBalanced 註解之後那麼這個RestTemplate就具有了負載均衡的功能

ribbon是怎麼實現這一功能的?

ribbon會把所有的LoadBalanced 註解的RestTemplate收集起來,基於SmartInitializingSingleton接口的afterSingletonsInstantiated方法調用的時候,並向其注入一個LoadBalancerInterceptor攔截器。通過此攔截器來實現負載均衡功能。

和註冊中心搭配使用時,各註冊中心自己的客戶端實現ServerList接口,基於自家 的服務註冊發現,將服務列表拉取到客戶端本地,ribbon再從客戶端本地更新到ribbon自己的緩存中,然後通過負載均衡器和對應的負載均衡算法來實現我們服務的負載均衡。

兩個關鍵的配置文件LoadBalancerAutoConfiguration和RibbonClientConfiguration,所有的配置都是從這兩個配置文件開始的。

源碼流程圖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章