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