一、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,可以看到控制台列印如下的資訊,可以看到傳回的端口資訊随機顯示。