0


【Nacos】负载均衡

生产环境相对是比较恶劣的,我们需要对服务的流量进行更加精细的控制.Nacos支持多种负载均衡策略,包括权重,同机房,同地域,同环境等.

1. 服务下线

当某一个节点上接口的性能较差时,我们可以第一时间对该节点进行下线.

操作步骤: 服务详情 ->下线

当点击下线后,再次通过服务发现的服务来请求该接口,该服务就不会有请求进来。再次上线后又会继续受到请求。

这里只是在注册中心中下线了,直接通过后端的接口仍然是可以访问的。

2 权重配置

除了将服务下线之外,我们还可以配置该节点的流量权重。

2.1 配置权重

操作步骤: 找到对应节点 ->编辑 ->在弹出的窗口修改权重值,修改9091端口的权重

每个节点默认权重为1, 修改为0.1

2.2 开启Nacos负载均衡策略

由于Spring Cloud LoadBalance组件自身有负载均衡配置方式,所以不支持Nacos的权重属性配置

我们需要开启Nacos的负载均衡策略,让权重配置生效

参考:如何解决MSE Nacos上修改服务实例的权重不生效问题_微服务引擎(MSE)-阿里云帮助中心

2.3 测试权重配置

启动服务, 访问多次接⼝, 观察结果, 会发现9091端⼝号的实例接收的请求明显⽐另外两个实例少 .

3. 同集群优先访问

3.1 概述

Nacos把同一个机房内的实例,划分为一个集群,所以同集群优先访问,在一定程度上也可以理解为同机房优先访问.
微服务架构中,一个服务通常有多个实例共同提供服务,这些实例可以部署在不同的机器上,这些机器可以分布在不同的机房,比如product-service:
实例1:分布在上海机房
实例2:分布在上海机房
实例3:分布在北京机房
实例4:分布在北京机房

微服务访问时,应尽量访问同机房的实例,当本机房内实例不可用时,才访问其他机房的实例.

比如order-service 在上海机房,product-service 在北京和上海机房都有实例,那我们希望可以优先访问上海机房,如果上海机房没有实例,或者实例不可用,再访问北京机房的实例.通常情况下,因为同一个机房的机器属于一个局域网,局域网访问速度更快一点.

3.2 场景演示

将订单服务的地点配置为北京,修改nacos.discovery.cluster-name为BJ

将商品服务(9090端口)的cluster-name配置为BJ,其余的配置为SH

开启nacos负载均衡策略

测试,观察结果

  1. 多次发送请求发现只有9090端口的商品服务能够提供服务,因为他和订单服务都在“北京”,在一个集群。
  2. 把9090端口的实例进行下线(SH集群),再次访问接口,观察日志,发现9091端口和9092端口的实例收到了请求

本文转载自: https://blog.csdn.net/qq_45875349/article/details/141932863
版权归原作者 小小小小关同学 所有, 如有侵权,请联系我们删除。

“【Nacos】负载均衡”的评论:

还没有评论