Ribbon屬於客戶端負載均衡,在SpringCloud中從Eureka獲取服務信息列表,在客戶端做負載均衡選擇其中之一,進行訪問;
- RestTemplate
- Feign
- Zuul
以上三種都使用到了Ribbon;
Ribbon實現負載均衡核心:
- 服務發現 --發現所有服務
- 服務選擇規則 --如何從多個服務中選擇一個服務
- 服務監聽 --及時監聽新加入的服務、消失的服務
Ribbon主要組件
- serverList
- IRule
- ServerListFilter
通過serverList獲取所有可用服務列表,通過ServerListFilter過濾掉一些地址,最終在剩下地址中選擇一個實例作爲最後目標
以RestTemplate使用爲例(參考:https://blog.csdn.net/weixin_36634753/article/details/90264907)
修改負載均衡規則,在配置文件中添加如下配置:配置的值選擇下圖的類名,需寫完整路名包括包名
PRODUCT:
ribbon:
NFLoadBalancerRuleClassName:值選擇如下圖