Nacos-NacosRule负载均衡和服务实例的权重配置

一、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被访问到的频率大大降低

 

posted on 2021-09-30 17:32  Ruthless  阅读(4288)  评论(0编辑  收藏  举报