当前位置: 首页 > news >正文

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

负载均衡规则

同集群优先

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

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

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

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

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

# 该属性和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表示该实例永远不会被访问

  • 灰度测试: 对服务进行版本升级时,可以给刚更新后的该服务设置一个很小的权重,这样就会有一小部分用户来访问该服务,测试该服务是否稳定

在这里插入图片描述

相关文章:

  • 计算机网络:网络层(无分类编址CIDR、计算题讲解)
  • 亿赛通电子文档安全管理系统 SQL注入漏洞复现
  • 分布式块存储 ZBS 的自主研发之旅|元数据管理
  • 深度学习项目部署:解析 NVIDIA Docker 中的 CUDA 镜像版本:base 版本、 runtime 版本、devel 版本
  • 基于linux系统的Tomcat+Mysql+Jdk环境搭建(二)jdk1.8 linux 上传到MobaXterm 工具的已有session里
  • 基于YOLOv8深度学习的吸烟/抽烟行为检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
  • 我的NPI项目之Android 安全系列 -- EMVCo
  • 从零开始搭建Go语言开发环境
  • 13.Spring 整合 Kafka + 发送系统通知 + 显示系统通知
  • 全球汽车行业的数字化转型:产品和后端的渐进之旅
  • WPF里面的Dispatcher详解
  • 记一次挖矿病毒的溯源
  • 基于ssm日用品网站设计论文
  • 深度剖析JavaScript中冒泡和捕获机制、事件代理
  • 升级Xcode15,iOS17后问题解决
  • 【node学习】协程
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 2017 前端面试准备 - 收藏集 - 掘金
  • PHP 的 SAPI 是个什么东西
  • ReactNativeweexDeviceOne对比
  • Sass 快速入门教程
  • SpringBoot几种定时任务的实现方式
  • Twitter赢在开放,三年创造奇迹
  • vue-cli在webpack的配置文件探究
  • 每天10道Java面试题,跟我走,offer有!
  • 数据科学 第 3 章 11 字符串处理
  • 微信小程序开发问题汇总
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 我看到的前端
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​iOS实时查看App运行日志
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #define用法
  • #Java第九次作业--输入输出流和文件操作
  • #Spring-boot高级
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $(function(){})与(function($){....})(jQuery)的区别
  • $GOPATH/go.mod exists but should not goland
  • (11)MATLAB PCA+SVM 人脸识别
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (SpringBoot)第七章:SpringBoot日志文件
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (五)网络优化与超参数选择--九五小庞
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)关于pipe()的详细解析
  • (转载)Google Chrome调试JS
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET Core 项目指定SDK版本
  • .NET Framework杂记
  • .Net Winform开发笔记(一)
  • .Net8 Blazor 尝鲜