Nacos 负载均衡核心能力总结一、核心前提开启 Nacos 负载均衡要让下面所有功能生效必须在调用方如 order-service的配置文件中开启 Nacos 负载均衡yamlspring: cloud: loadbalancer: nacos: enabled: true不加这个配置默认的 Spring Cloud 轮询策略会让「权重」「同集群优先」都失效。二、核心能力 1服务上线下线故障自动剔除1. 功能说明当服务实例正常关闭或意外宕机时Nacos 会自动将其从服务列表中剔除。负载均衡器会立刻停止向下线的实例转发请求只发给健康实例。2. 你关心的问题问题某个实例下线了会不会影响其他实例回答不会。只要还有其他健康实例请求会自动转发到可用实例不影响业务。问题服务下线是立刻生效吗回答主动关闭优雅下线是立刻生效宕机 / 断网的实例Nacos 会在健康检查失败后自动剔除几秒内。三、核心能力 2权重配置流量分配控制1. 功能说明每个服务实例都可以设置 0~100 的权重数值越大分到的请求越多。权重为0时实例直接下线不接收任何请求可用于优雅停机、灰度发布。2. 你关心的问题问题为什么权重配置了不生效回答因为没开启spring.cloud.loadbalancer.nacos.enabledtrue默认轮询策略不认权重。问题权重怎么用回答灰度发布新实例设高权重旧实例逐步调低到 0实现无痛切换。故障止损故障实例设为 0立刻停止流量不影响用户。流量分担高峰期通过调整权重将部分流量导到其他集群实例。四、核心能力 3同集群优先访问就近访问1. 功能说明服务可以通过spring.cloud.nacos.discovery.cluster-name配置所属集群如beijing。负载均衡策略会优先选择同集群内的实例只有当同集群实例全部下线 / 不健康时才会降级访问其他集群的实例。2. 你关心的问题问题同集群的机器处理不过来会自动分流到其他集群吗回答不会。默认策略只有在同集群实例全挂 / 不健康时才会跨集群访问。想主动分流必须通过手动调整权重实现降低本集群权重提高其他集群权重。问题同集群优先的优先级比权重高吗回答是的。执行顺序是优先筛选同集群实例在同集群内按权重分配流量同集群无可用实例时才会跨集群访问五、三者协同的完整执行流程当 order-service 调用 product-service 时完整的负载均衡逻辑是筛选集群优先选择和自己同集群的 product-service 实例。过滤健康实例剔除已下线、不健康的实例。按权重分配在可用实例中根据权重比例分发请求。跨集群兜底如果同集群没有可用实例才会降级访问其他集群的实例。六、关键结论「权重」和「同集群优先」生效的前提是开启 Nacos 负载均衡。服务下线自动剔除实现高可用。权重可手动控制流量分配支持灰度发布和故障止损。同集群优先是就近访问不会自动跨集群分担压力仅用于故障兜底。高峰期跨集群流量分担必须通过手动调整权重实现。