负载均衡策略
引用文件
目录
简介
本文件面向 yudao-cloud 的负载均衡策略,聚焦于 Spring Cloud LoadBalancer 与网关侧灰度发布机制。内容涵盖:
- Ribbon 与 Spring Cloud LoadBalancer 的实现原理与差异
- 灰度发布的负载均衡机制:基于版本号的实例筛选、权重分配与故障转移
- 负载均衡算法选择:轮询、随机、加权、响应时间等策略
- 性能优化:连接池 、超时、健康检查参数调整
- 配置示例与监控指标说明
注意:yudao-cloud 在网关层采用 Spring Cloud LoadBalancer,并通过自定义过滤器与负载均衡器实现灰度能力;同时在基础设施模块提供 Prometheus 与 Micrometer 指标集成,便于观测。
项目结构
与负载均衡相关的关键位置:
- 网关层:灰度过滤器与灰度负载均衡器
- 框架层:多环境 RPC 自动装配与客户端工厂
- 配置层:应用配置与生产配置
- 监控层:Prometheus 服务发现与通用指标标签
图示来源
- GrayReactiveLoadBalancerClientFilter.java
- GrayLoadBalancer.java
- YudaoEnvRpcAutoConfiguration.java
- EnvLoadBalancerClientFactory.java
- application.yaml
- application-prod.yaml
- PrometheusController.java
- YudaoMetricsAutoConfiguration.java
章节来源
- GrayReactiveLoadBalancerClientFilter.java
- GrayLoadBalancer.java
- YudaoEnvRpcAutoConfiguration.java
- EnvLoadBalancerClientFactory.java
- application.yaml
- application-prod.yaml
- PrometheusController.java
- YudaoMetricsAutoConfiguration.java
核心组件
- 灰度负载均衡过滤器:拦截以特定 scheme(grayLb)开头的请求,注入灰度负载均衡器并完成实例选择与 URI 重建。
- 灰度负载均衡器:从请求头提取版本号与标签,按版本与标签筛选实例,再基于权重随机选择目标实例。
- 多环境 RPC 自动装配:替换默认客户端工厂,增强基于标签的实例过滤能力。
- 配置与监控:应用配置引入 Nacos 与本地配置;基础设施提供 Prometheus 服务发现与通用指标标签。
章节来源
- GrayReactiveLoadBalancerClientFilter.java
- GrayLoadBalancer.java
- YudaoEnvRpcAutoConfiguration.java
- application.yaml
架构总览
下图展示灰度请求在网关侧的处理时序与组件交互。
图示来源
章节来源