Spring Cloud | 第三篇:負載均衡(Ribbon)

一、Ribbon簡介

Netfilx發佈的負載均衡器,是一個基於http、tcp的客戶端負載均衡工具,具有控制http、tcp客戶端的行爲,爲ribbon配置服務提供者的地址後,ribbon就可以經過springCloud的封裝實心客戶端負載均衡的服務調用。

二、準備工作

我們繼續使用上一篇的工程,我們給Mall_WechatService服務分別分配不同的端口多次啓動。如何多次啓動?

IDEA打開工程,點擊Edit Configuations


點擊進去之後,我們想讓哪個工程多次啓動,點擊左邊工程名稱,然後把Single instance only勾選給去掉。


現在我們更改Mall_WechatService的運行端口於8010和8020並分別啓動。

三:Feign默認實現的負載均衡

由於Feign默認實現了Ribbon,所以我們在服務提供端(Mall_WechatService)返回值裏面加入運行端口的信息。直接運行上一節當中的Feign調用服務的代碼,打開瀏覽器,輸入http://localhost:8011/sayFeignHello,可以看到控制檯打印如下的信息,可以看到返回的端口信息交替顯示。


四:Ribbon的配置

上面我們看到端口號交替顯示出來,是因爲Ribbon默認的負載均衡策略是輪詢,Ribbon一共有七種負載均衡的策略:


我們可以使用非常簡單的配置來修改Ribbon負載均衡的策略,官方文檔這麼說的:


因此,我們只需要在我們的服務消費者的application.yml中加入下面的配置,就可以把負載均衡的策略修改爲隨機。

mall-wechatservice:
    ribbon:
       NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

我們運行3個Mall_WechatService實例分別於8010、8020和8030端口,運行服務調用程序Mall_ManagerService,打開瀏覽器,輸入http://localhost:8011/sayFeignHello,可以看到控制檯打印如下的信息,可以看到返回的端口信息隨機顯示。



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