loadfactor参数在balancermember中设置后端服务器权重,决定请求分配的相对比例,需配合lbmethod调度算法使用,默认值为1,设0会导致归一化异常,修改后需graceful重载。
apache mod_proxy_balancer 通过 loadfactor 参数设置后端服务器权重,它决定该节点在调度中分得请求的相对比例。权重不是绝对数值,而是与其他成员的 loadfactor 做归一化计算后生效。
怎么写 loadfactor 参数
在 BalancerMember 行中直接添加:
BalancerMember http://node1:8080 loadfactor=5
BalancerMember http://node2:8080 loadfactor=2
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
上面配置表示 node1 分到的请求数约为 node2 的 2.5 倍(5 ÷ 2)。若不写 loadfactor,默认值为 1。
权重生效的前提条件
- 必须显式指定调度算法,例如:
ProxySet lbmethod=byrequests或lbmethod=bytraffic;bybusyness 算法也支持权重,但会叠加连接数影响 - 所有参与调度的 BalancerMember 应在同一
块内,且不能混用不同 lbmethod - 权重仅对“启用中”的节点有效;若某节点被标记为
status=+H(热备)或status=D(停用),其 loadfactor 不参与计算
常见误区与注意事项
- loadfactor 是静态配置项,修改后需执行
apachectl graceful才能生效,无法运行时自动刷新 - 不要把 loadfactor 设为 0 —— 这不会让节点“完全不接收请求”,而是导致归一化计算异常;真正隔离应使用
status=D - 高并发场景下,单纯调高权重可能加剧单点压力,建议配合
max=60(最大并发连接数)和timeout=5使用 - 若需动态调整权重(如按响应时间、CPU),必须靠外部脚本生成新配置 + graceful 重载,或调用 /balancer-manager 接口临时修改(但该修改在下次 graceful 后丢失)










