Ribbon負(fù)載均衡框架
微服務(wù)架構(gòu)中采用Ribbon解決客戶端負(fù)載均衡問(wèn)題,Ribbon是Netflix發(fā)布的開(kāi)源項(xiàng)目,主要功能是提供客戶端的軟件負(fù)載均衡算法,Ribbon客戶端組件提供一系列完善的配置項(xiàng)如連接超時(shí),重試等解決方案,Ribbon的負(fù)載均衡算法有:
(1) RoundRobinRule:輪詢;
(2) RandomRule:隨機(jī);
(3) AvailabilityFilteringRule:會(huì)先過(guò)濾掉由于多次訪問(wèn)故障而處于斷路器跳閘狀態(tài)的服務(wù),還有并發(fā)的連接數(shù)量超過(guò)閾值的服務(wù),然后對(duì)剩余的服務(wù)列表按照輪詢策略進(jìn)行訪問(wèn);
(4) WeightedResponseTimeRule:根據(jù)平均響應(yīng)時(shí)間計(jì)算所有服務(wù)的權(quán)重,響應(yīng)時(shí)間越快服務(wù)權(quán)重越大被選中的概率越高。剛啟動(dòng)時(shí)如果統(tǒng)計(jì)信息不足,則使用RoundRobinRule策略,等統(tǒng)計(jì)信息足夠,會(huì)切換到WeightedResponseTimeRule
(5) RetryRule:先按照RoundRobinRule的策略獲取服務(wù),如果獲取服務(wù)失敗則在指定時(shí)間內(nèi)會(huì)進(jìn)行重試,獲取可用的服務(wù);
(6) BestAvailableRule:會(huì)先過(guò)濾掉由于多次訪問(wèn)故障而處于斷路器跳閘狀態(tài)的服務(wù),然后選擇一個(gè)并發(fā)量最小的服務(wù);
(7) ZoneAvoidanceRule:默認(rèn)規(guī)則,復(fù)合判斷server所在區(qū)域的性能和server的可用性選擇服務(wù)器。
?SpringCloud Ribbon流程圖
服務(wù)部署在服務(wù)器上,啟動(dòng)后,會(huì)將服務(wù)的接口注冊(cè)在Nacos注冊(cè)中心中,并采用心跳機(jī)制,告訴注冊(cè)中心該服務(wù)是否健康,注冊(cè)中心可以查看服務(wù)的健康狀況,出現(xiàn)調(diào)用不到的情況后,注冊(cè)中心會(huì)剔除該服務(wù),客戶端在調(diào)用服務(wù)后,Ribbon從注冊(cè)中心中取出可以正常服務(wù)的接口,并采用輪詢、隨機(jī)等方式實(shí)現(xiàn)負(fù)載均衡效果。
審核編輯 黃宇
-
負(fù)載
+關(guān)注
關(guān)注
2文章
556瀏覽量
34215 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
8957瀏覽量
85080 -
框架
+關(guān)注
關(guān)注
0文章
398瀏覽量
17404
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論