天天看點

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

一、Ribbon簡介

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

二、準備工作

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

IDEA打開工程,點選Edit Configuations

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

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

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

現在我們更改Mall_WechatService的運作端口于8010和8020并分别啟動。

三:Feign預設實作的負載均衡

由于Feign預設實作了Ribbon,是以我們在服務提供端(Mall_WechatService)傳回值裡面加入運作端口的資訊。直接運作上一節當中的Feign調用服務的代碼,打開浏覽器,輸入http://localhost:8011/sayFeignHello,可以看到控制台列印如下的資訊,可以看到傳回的端口資訊交替顯示。

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

四:Ribbon的配置

上面我們看到端口号交替顯示出來,是因為Ribbon預設的負載均衡政策是輪詢,Ribbon一共有七種負載均衡的政策:

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

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

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

是以,我們隻需要在我們的服務消費者的application.yml中加入下面的配置,就可以把負載均衡的政策修改為随機。

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

我們運作3個Mall_WechatService執行個體分别于8010、8020和8030端口,運作服務調用程式Mall_ManagerService,打開浏覽器,輸入http://localhost:8011/sayFeignHello,可以看到控制台列印如下的資訊,可以看到傳回的端口資訊随機顯示。

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

繼續閱讀