04-Nacos中负载均衡规则的配置

负载均衡规则

同集群优先

默认的ZoneAvoidanceRule实现并不能根据同集群优先的规则来实现负载均衡,Nacos中提供了一个实现叫NacosRule可以优先从同集群中挑选服务实例

  • 当服务消费者在本地集群找不到服务提供者时也会去其他集群中寻找,但此时会在服务消费者的控制台报警告

第一步: 在order-service模块的application.yml文件中添加集群配置属性spring.cloud.nacos.discovery.cluster-name

YML 复制代码
spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名称(杭州)

第二步: 在order-service模块的application.yml文件中给userservice服务添加同集群优先的负载均衡规则

YML 复制代码
# 该属性和spring属性同级
userservice: # 给userservice服务配置负载均衡规则
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

第三步: 访问http://localhost:8080/order/101(查询订单)-->http://localhost:8081/user/订单中的用户ID(查询用户), 观察服务实例的日志输出

  • 启动userservice服务的三个实例: 集群名称为HZ的两个userservice服务实例看到日志输出,而集群名称为SHuserservice服务实例看不到日志输出
  • 停掉集群名称为HZ的两个userservice服务实例: 集群名称为SHuserservice服务实例也会输出日志,但orderservice的控制台提示跨集群访问警告

权重占比

实际部署时不同的服务器设备性能有差异(有的性能好,有的性能较差),此时我们更希望性能好的机器承担更多的用户请求

默认情况下NacosRule实现类负载均衡的规则是同集群内随机挑选(不看机器的性能),所以Nacos另外提供了权重配置来控制访问频率(权重越大则访问频率越高)

在Nacos控制台找到userservice服务的实例,点击编辑即可以修改权重,权重一般是在0-1之间,权重为0表示该实例永远不会被访问

  • 灰度测试: 对服务进行版本升级时,可以给刚更新后的该服务设置一个很小的权重,这样就会有一小部分用户来访问该服务,测试该服务是否稳定
相关推荐
IT 小阿姨(数据库)15 分钟前
PostgreSQL wal_e 工具详解
运维·数据库·sql·postgresql·centos
萤丰信息16 分钟前
从超级大脑到智能毛细血管:四大技术重构智慧园区生态版图
java·人工智能·科技·重构·架构·智慧园区
帅得不敢出门16 分钟前
Android监听第三方播放获取音乐信息及包名
android·java
有想法的py工程师18 分钟前
AL2系统下编译安装PSQL16.4版本
linux·运维·数据库·postgresql
qq_2663487319 分钟前
系统白名单接口添加自定义验证(模仿oauth2.0),防安全扫描不通过
java·安全
努力努力再努力wz30 分钟前
【C++进阶系列】:万字详解特殊类以及设计模式
java·linux·运维·开发语言·数据结构·c++·设计模式
青云交32 分钟前
Java 大视界 -- Java 大数据在智慧交通自动驾驶仿真与测试数据处理中的应用
java·大数据·自动驾驶·数据存储·算法优化·智慧交通·测试数据处理
reasonsummer34 分钟前
【办公类-115-05】20250920职称资料上传04——PDF和PDF合并PDF、图片和PDF合并PDF(十三五PDF+十四五图片)
java·python·pdf
Mcband35 分钟前
Apache Commons IO:文件流处理利器,让Java IO操作更简单
java·开发语言·apache
缺点内向36 分钟前
Java:将 Word 文档转换为密码保护的 PDF 文件
java·pdf·word