新聞中心
這期內容當中小編將會給大家?guī)碛嘘PSpringCloud中怎么切換Ribbon負載均衡模式,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網站制作團隊,在互聯(lián)網網站建設行業(yè)深耕十載,專業(yè)且經驗豐富。十載網站優(yōu)化營銷經驗,我們已為上1000+中小企業(yè)提供了網站制作、成都網站設計解決方案,按需求定制制作,設計滿意,售后服務無憂。所有客戶皆提供一年免費網站維護!
Spring Cloud Ribbon是一個基于HTTP和TCP的客戶端負載均衡工具,它基于Netflix Ribbon實現(xiàn)。通過Spring Cloud的封裝,可以讓我們輕松地將面向服務的REST模版請求自動轉換成客戶端負載均衡的服務調用。Spring Cloud Ribbon雖然只是一個工具類框架,它不像服務注冊中心、配置中心、API網關那樣需要獨立部署,但是它幾乎存在于每一個Spring Cloud構建的微服務和基礎設施中。因為微服務間的調用,API網關的請求轉發(fā)等內容,實際上都是通過Ribbon來實現(xiàn)的,包括后續(xù)我們將要介紹的Feign,它也是基于Ribbon實現(xiàn)的工具。所以,對Spring Cloud Ribbon的理解和使用,對于我們使用Spring Cloud來構建微服務非常重要。
Ribbon為我們提供了很多負載均衡算法,例如輪詢、隨機等等,我們也可以自己定義算法,那么Ribbon默認使用哪種模式呢,我們可以測試一下,我這里啟動了三個服務提供者,一個服務消費者,如下圖所示
測試類
@SpringBootTest@RunWith(SpringRunner.class)public class LoadBalanceTest { @Autowired private RibbonLoadBalancerClient client; @Test public void test(){ for (int i = 0; i < 50; i++) { ServiceInstance instance = client.choose("service-provider"); System.out.println(instance.getHost()+":"+instance.getPort()); } }}
輸出結果
LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890
可以很明顯的看出這是一個輪詢的模式,所以可以證明Ribbon默認使用輪詢的負載均衡模式
那么如何切換其負載均衡模式呢?
只需要在配置文件里配置下面這段(以yml為例):
{服務提供者名稱}: ribbon: NFLoadBalancerRuleClassName: {IRule的實現(xiàn)類}
比如我的配置如下:
service-provider: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
可選擇的模式如下所示,這些都是IRule的實現(xiàn)類
切換為隨機模式的效果是什么樣的呢?修改配置后再次運行測試類
LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8890LAPTOP-LFAOC6JB:8888LAPTOP-LFAOC6JB:8889LAPTOP-LFAOC6JB:8889
上述就是小編為大家分享的SpringCloud中怎么切換Ribbon負載均衡模式了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:SpringCloud中怎么切換Ribbon負載均衡模式
文章轉載:http://www.ef60e0e.cn/article/isgghc.html