介绍
加权最小连接数算法除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑负载均衡服务与后端服务器的实际连接数。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。加权最小连接数算法常用于长连接服务,例如数据库连接等服务。
例如负载均衡后端服务器组挂载了2个ECS,分配的权重均为100,当前连接数分别为100、50,则客户端新请求将优先转发到连接数较少的后端服务器。
优点
动态性能调整:加权最小连接数算法可以根据服务器的当前连接数和权重来进行动态调整,将请求发送到连接数最少且性能较好的服务器上,实现负载均衡。
负载均衡效果好:由于算法会考虑服务器的连接数和权重,加权最小连接数算法可以实现更精确的负载均衡,将请求合理地分配到各个服务器上,避免出现过载或空闲的情况。
缺点
算法复杂性高:相比于轮询算法或加权轮询算法,加权最小连接数算法的实现较为复杂,需要实时监控负载均衡服务与后端服务器之间的连接数,并进行计算和选择。
对服务器连接数的依赖:算法依赖于准确获取负载均衡服务和后端服务器的连接数,如果获取不准确或监控不及时,可能导致负载分配不均衡。同时由于算法只能统计到负载均衡服务与后端服务器之间的连接,后端服务器整体连接数无法获取,因此对于后端服务器挂载到多个负载均衡实例的场景,也可能导致负载分配不均衡。
新增后端服务器时可能导致新服务器瞬间压力过大:如果存量的连接数过大,当有新的服务器加入时,大量的新建连接会被调度到新加入的服务器上,可能会导致新服务器瞬间压力过大影响系统稳定性。
适用场景
服务器性能差异较大:当服务器的性能差异较大时,通过考虑连接数和权重来进行负载均衡,可以更精确地将请求分配到性能较好的服务器上。
动态负载调度:当服务器的连接数和负载情况经常发生变化时,可以通过实时监控连接数并进行动态调整,实现动态的负载均衡。
高稳定性要求:对于需要实时响应和高稳定性的应用场景,通过加权最小连接数算法可以降低服务器的负载,提高系统的稳定性和可靠性。