nacos:负载均衡 3大核心操作

Nacos 负载均衡核心能力总结


一、核心前提:开启 Nacos 负载均衡

要让下面所有功能生效,必须在调用方(如 order-service)的配置文件中开启 Nacos 负载均衡

yaml

复制代码
spring:
  cloud:
    loadbalancer:
      nacos:
        enabled: true

不加这个配置,默认的 Spring Cloud 轮询策略会让「权重」「同集群优先」都失效。


二、核心能力 1:服务上线下线(故障自动剔除)

1. 功能说明

  • 当服务实例正常关闭或意外宕机时,Nacos 会自动将其从服务列表中剔除。
  • 负载均衡器会立刻停止向下线的实例转发请求,只发给健康实例。

2. 你关心的问题

  • 问题 :某个实例下线了,会不会影响其他实例?
    • 回答:不会。只要还有其他健康实例,请求会自动转发到可用实例,不影响业务。
  • 问题 :服务下线是立刻生效吗?
    • 回答:主动关闭(优雅下线)是立刻生效;宕机 / 断网的实例,Nacos 会在健康检查失败后自动剔除(几秒内)。

三、核心能力 2:权重配置(流量分配控制)

1. 功能说明

  • 每个服务实例都可以设置 0~100 的权重,数值越大,分到的请求越多。
  • 权重为 0 时,实例直接下线,不接收任何请求(可用于优雅停机、灰度发布)。

2. 你关心的问题

  • 问题 :为什么权重配置了不生效?
    • 回答 :因为没开启 spring.cloud.loadbalancer.nacos.enabled=true,默认轮询策略不认权重。
  • 问题 :权重怎么用?
    • 回答
      • 灰度发布:新实例设高权重,旧实例逐步调低到 0,实现无痛切换。
      • 故障止损:故障实例设为 0,立刻停止流量,不影响用户。
      • 流量分担:高峰期通过调整权重,将部分流量导到其他集群实例。

四、核心能力 3:同集群优先访问(就近访问)

1. 功能说明

  • 服务可以通过 spring.cloud.nacos.discovery.cluster-name 配置所属集群(如 beijing)。
  • 负载均衡策略会优先选择同集群内的实例,只有当同集群实例全部下线 / 不健康时,才会降级访问其他集群的实例。

2. 你关心的问题

  • 问题 :同集群的机器处理不过来,会自动分流到其他集群吗?
    • 回答 :不会。默认策略只有在同集群实例全挂 / 不健康时,才会跨集群访问。
    • 想主动分流,必须通过手动调整权重实现(降低本集群权重,提高其他集群权重)。
  • 问题 :同集群优先的优先级比权重高吗?
    • 回答 :是的。执行顺序是:
      1. 优先筛选同集群实例
      2. 在同集群内按权重分配流量
      3. 同集群无可用实例时,才会跨集群访问

五、三者协同的完整执行流程

当 order-service 调用 product-service 时,完整的负载均衡逻辑是:

  1. 筛选集群:优先选择和自己同集群的 product-service 实例。
  2. 过滤健康实例:剔除已下线、不健康的实例。
  3. 按权重分配:在可用实例中,根据权重比例分发请求。
  4. 跨集群兜底:如果同集群没有可用实例,才会降级访问其他集群的实例。

六、关键结论

  1. 「权重」和「同集群优先」生效的前提是开启 Nacos 负载均衡。
  2. 服务下线自动剔除,实现高可用。
  3. 权重可手动控制流量分配,支持灰度发布和故障止损。
  4. 同集群优先是就近访问,不会自动跨集群分担压力,仅用于故障兜底。
  5. 高峰期跨集群流量分担,必须通过手动调整权重实现。
相关推荐
阿洛学长2 小时前
CSDN、掘金、简书博客文章如何转为Markdown?
运维·数据库·架构·php·持续部署
方安乐2 小时前
交换机的自学机制
运维·服务器·网络
MXsoft6183 小时前
**智能运维如何实现全栈监控与****AI****告警?****——****一体化平台实战解析**
运维·人工智能
MXsoft6184 小时前
**运维体系升级:筑牢企业数字化转型的稳定底座**
运维
MXsoft6184 小时前
**一体化智能运维如何破解跨区域****IT****管理****难题****?**
运维
源远流长jerry4 小时前
Linux 网络虚拟化深度解析:从 veth 设备对到容器网络实战
linux·运维·服务器·网络·性能优化·php
|_⊙4 小时前
Linux 深入理解文件(Ext2文件系统:上)
linux·运维·数据库
GIOTTO情4 小时前
Infoseek舆情处置技术解析:基于AI大模型的全链路自动化处置方案
运维·人工智能·自动化