一、Nacos-NacosRule負載均衡
1、NacosRule負載均衡策略
a.優先選擇同集群服務實例列表
b.本地集群找不到提供者,才去其它集群尋找,並且會報警告
c.確定了可用實例列表后,再采用隨機負載均衡挑選實例
1.修改order-service中的application.yml,設置集群為HZ:
spring:
application:
name: orderservice
cloud:
nacos:
server-addr: tajia-nacos:8848 # nacos服務地址
discovery:
cluster-name: HZ #order-service服務在杭州集群,調用user-service服務優先選擇杭州集群服務實例列表
2.然后在order-service中設置負載均衡的IRule為NacosRule,這個規則優先會尋找與自己同集群的服務:
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負載均衡規則
二、Nacos-服務實例的權重配置
實際部署中會出現這樣的場景:
服務器設備性能有差異,部分實例所在機器性能較好,另一些較差,我們希望性能好的機器承擔更多的用戶請求.
Nacos提供了權重配置來控制訪問頻率,權重越大則訪問頻率越高,實例的權重控制
a.Nacos控制台可以設置實例的權重值,0~1之間
b.同集群內的多個實例,權重越高被訪問的頻率越高
c.權重設置為0則完全不會被訪問
eg:如把userservice:8081服務權重調整為0,此時userservice:8081服務不承擔用戶請求,這時做停機操作對用戶是無感知操作,我們可以做版本升級,升級結束后權重調小點(如:0.01),對小部分用戶開放等沒問題再把權重調大。這樣操作對用戶是無感知的,平滑升級非常優雅。
設置權重負載均衡:
在Nacos控制台可以設置實例的權重值,首先選中實例后面的編輯按鈕
將權重設置為0.1,測試可以發現8081被訪問到的頻率大大降低