NocasRule负载均衡
.yml 配置文件配置
server:
port: 8080
spring:
application:
name: orderservice
cloud:
nacos:
server-addr: localhost:8848 #nocas服务地址
discovery:
cluster-name: HZ #集群名字
userservice: #要做配置的微服务名称
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #配置负载均衡规则;(1、优先访问本地集群 2、在本地集群中随机访问服务 3、本地没有服务就会跨集群访问)
根据权重负载均衡
实际部署中会出现这样的场景:
服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。
Nacos提供了权重配置来控制访问频率,权重越大则访问越高。
权重值范围 0~1。
权重值修改
user-service 端口号为 8081的服务权重值设置为 0.1,那么端口号为 8081的 user-service服务访问率大大减低。
权重值设置为0的服务完全没有被访问
端口号8082的user-service服务权重值设置为0后,该端口号8082的服务完全没有被访问。这个效果可以用于服务升级,需要进行升级的服务权重值设置为0,升级成功后可以设置权重值为0.1、0.2比较小的值,放开一些请求进来测试。
浏览器发送请求,端口号8082的user-service服务没有被访问
访问的都是8081的服务。
修改权重值后测试服务访问率
如图所示:浏览器发送三次请求 http://localhost:8080/order/3
端口号为8081的user-service服务几乎没有请求访问
端口号为8082的user-service服务访问量很高: