轮询模式负载均衡,原理、实现与性能优化策略

导读:

  1. 基础配置方式
  2. 负载均衡策略详解
  3. 健康检查配置(关键)
  4. 在规则中应用
  5. 图形界面辅助设置
  6. 高级技巧
  7. 注意事项
  8. 验证是否生效

Shadowrocket 的负载均衡(Load Balance)功能可以将流量分散到多个代理节点,提高连接稳定性和速度,以下是详细设置指南:

基础配置方式

Shadowrocket 的负载均衡主要通过配置文件(Config)实现,而非纯 GUI 操作。

编辑配置文件

  1. 打开 Shadowrocket → 配置(底部菜单)
  2. 选择当前使用的配置 → 点击 编辑配置(Edit)
  3. 选择 文本模式(Text Mode)编辑

添加负载均衡组

在配置文件中添加 [Proxy Group] 段落:

[Proxy Group]LoadBalance = load-balance, 节点1, 节点2, 节点3, strategy=round-robin, check-interval=300, fail-over=true
# 最少连接模式
LeastConn = load-balance, 节点1, 节点2, 节点3, strategy=least-conn, check-interval=300
# 随机模式
Random = load-balance, 节点1, 节点2, 节点3, strategy=random

负载均衡策略详解

策略 说明 适用场景
round-robin 轮询,依次使用每个节点 节点质量相近,均匀分配流量
least-conn 最少连接,选择当前连接数最少的节点 长时间连接应用(如视频流)
random 随机选择节点 简单分散负载
consistent-hashing 一致性哈希,相同目标地址使用相同节点 需要保持会话一致性

健康检查配置(关键)

为确保故障节点自动剔除,必须开启健康检查:

[Proxy Group]
Auto-Balance = load-balance, 香港1, 香港2, 美国1, 日本1, \
    strategy=round-robin, \
    check-interval=300, \      # 每300秒检查一次
    check-url=http://www.gstatic.com/generate_204, \  # 检查地址
    fail-over=true              # 故障自动切换

在规则中应用

[Rule] 段落引用负载均衡组:

[Rule]
# 最终规则指向负载均衡组
FINAL,Auto-Balance
# 或特定域名使用
DOMAIN-SUFFIX,google.com,Auto-Balance

图形界面辅助设置

如果不喜欢手动编辑文本:

  1. 首页 → 点击右上角 → 选择 类型:Load Balance
  2. 添加多个节点到该组
  3. 点击该组 → 策略(Strategy)选择算法
  4. 开启 健康检查(Health Check)

高级技巧

分组负载均衡

[Proxy Group]
# 先按地区分组
HK-Group = select, 香港1, 香港2
US-Group = select, 美国1, 美国2
# 再对地区组做负载均衡
Global-Balance = load-balance, HK-Group, US-Group, strategy=round-robin

权重设置(部分版本支持)

Weighted = load-balance, 高速节点:2, 普通节点:1, strategy=round-robin

故障转移 + 负载均衡混合

# 先负载均衡,全部故障时走直连
Safe-Balance = load-balance, 节点1, 节点2, 节点3, strategy=round-robin, fail-over=DIRECT

注意事项

  1. 节点命名:确保 [Proxy] 段落中的节点名称与 Group 中引用的完全一致
  2. 检查 URL:建议使用 http://www.gstatic.com/generate_204http://cp.cloudflare.com/generate_204
  3. 检查间隔:建议 300-600 秒,过短会增加节点负担
  4. 兼容性:部分老旧节点可能不支持健康检查,会显示为超时
  5. 耗电:负载均衡会增加后台检测频率,略微增加电量消耗

验证是否生效

  1. 开启 Shadowrocket 的 日志(Log)
  2. 观察不同连接是否分散到不同节点
  3. 手动断开某个节点,观察是否自动切换到其他节点

提示:如果主要追求低延迟而非负载分散,建议使用 url-test(自动测速选择最优节点)而非 load-balance

您可以还会对下面的文章感兴趣: