我们有一些后端服务器专门用于音视频的处理,这些任务耗时至少在5s,之前用默认的 RR 均衡算法, 总是导致后端服务器堆积大量请求,系统 Load 居高不下. 换了 least_conn 均衡算法之后, 整个后端服务器的负载变得平衡了.
upstream fp_calculators {
least_conn;
server server1;
server server2;
}
对于此类场景, 基于请求量的负载均衡都不是好办法.如果要做限流, 可以使用 ngx_http_status_module 对每个就客户端和每台后端做连接限制.
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m;
server {
...
limit_conn perip 10;
limit_conn perserver 100;
}