Apache通过lbmethod=bybusyness算法实现连接数最少优先调度,严格依据后端当前活跃代理连接数分发请求,不感知CPU、内存或响应时间;需加载proxy、proxy_balancer和lbmethod_bybusyness三模块,ProxySet lbmethod=bybusyness必须在<Proxy>块内显式配置,并依赖后端KeepAlive正常工作。

Apache 负载均衡器本身不直接提供“连接数均衡策略”这个独立概念,它没有像某些专用 LB 设备那样按连接数做实时动态再平衡。但你真正想调整的,是如何让请求更合理地分发到后端节点,避免某些节点连接堆积、另一些空闲——这背后依赖的是 负载均衡算法选择 + 连接池参数协同控制。
关键不是“均衡连接数”,而是通过 lbmethod=bybusyness(最少连接数算法)让新请求自动倾向连接更少的节点,再配合连接池参数防止连接耗尽或闲置,从而实现事实上的连接负载均衡。
用 bybusyness 算法让请求自动流向空闲节点
这是 Apache 实现连接级负载均衡的核心机制。它不靠轮询或权重,而是实时统计每个后端的活跃连接数(Busy),每次选 Busy 值最小的节点转发请求。
✅ 正确配置示例:
<Proxy "balancer://mycluster">
BalancerMember http://192.168.1.101:8080 route=node1
BalancerMember http://192.168.1.102:8080 route=node2
ProxySet lbmethod=bybusyness
</Proxy>⚠ 注意事项:
- 必须启用
mod_lbmethod_bybusyness模块(Apache 2.4+ 默认内置,但需确认已加载) - 不要混用
lbmethod=byrequests或bytraffic,它们不感知连接状态 -
bybusyness对长连接、WebSocket、文件上传等场景特别有效
配合连接池参数,防止“假均衡”
即使用了 bybusyness,如果连接池配置不合理,仍会出现:
→ 某节点 Busy 长期满(max 被打满),但其他节点 Idle 却很多(复用率低、连接未释放)
→ 表面均衡,实际负载倾斜。
你需要同步调优以下参数:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
max=XX:单节点最大空闲连接数(建议 20–50,视后端并发能力定) -
min=YY:保底维持的空闲连接(3–5,避免冷启动延迟) -
acquire=ZZZ:客户端等待连接超时毫秒(2000–5000,太短易报错,太长阻塞) -
ttl=600:空闲连接存活时间(单位秒,防连接泄漏) -
maxconnections=NNN:整个集群总连接上限(硬限,优先于单节点 max)
示例:
<Proxy "balancer://mycluster">
BalancerMember http://192.168.1.101:8080 max=40 min=4 acquire=3000
BalancerMember http://192.168.1.102:8080 max=40 min=4 acquire=3000
ProxySet lbmethod=bybusyness maxconnections=80 ttl=600
</Proxy>监控验证是否真均衡
访问 /balancer-manager(需已安全启用),观察各节点的三项关键值:
- Busy:当前正在处理请求的连接数
- Idle:空闲可复用的连接数
- Conn:该节点总连接数(Busy + Idle)
理想状态:
-
Busy值在各节点间波动接近,无长期单边高企 -
Idle不为 0,且稳定在min附近(说明连接复用正常) -
Conn≤max,且未频繁触发acquire超时(查看 error_log 中proxy: acquisition timeout)
若发现某节点 Busy 持续接近 max,说明:
- 后端处理慢(查响应时间、CPU、GC)
- 或
max设得太低,应适当上调(同时检查后端连接池容量)
补充:会话粘性与连接均衡的取舍
开启 stickysession=JSESSIONID 或 lbmethod=iphash 会破坏连接数均衡(请求固定到某节点),适合有状态应用。
如必须粘性,建议:
- 仅对
/login、/api/session等路径启用粘性 - 其余无状态接口(如
/static/,/api/data)走bybusyness - 或改用后端 Session 共享(Redis),解除粘性依赖
不复杂但容易忽略

















