均衡方式是应用型负载均衡(ALB)向目标组分配业务流量的算法,根据不同的均衡方式可以达到不同的均衡效果。
加权轮询算法
加权轮询算法(Weighted Round-Robin Scheduling)是以轮叫的方式、依次请求调度不同的服务器。加权轮询调度算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,按权值的高低和轮询方式分配请求到各服务器。加权轮询算法根据新建连接数来调度,权重高值的服务器先收到连接,权重值越高被轮询到的次数(概率)也越高,相同权值的服务器处理相同数目的连接数。
优势:简洁实用,无需记录当前所有连接的状态,是一种无状态调度。
劣势:相对简单,在请求服务时间变化较大或每个请求消耗时间不一致的情况下,容易导致服务器间的负载不平衡。
适用场景:当每个请求所占用的后端时间基本相同时,负载情况最好。常用于短连接服务,例如 HTTP 等。
用户推荐:已知每个请求所占用后端时间基本相同、后端服务器处理的请求类型相同或者相似时,推荐您选择加权轮询的方式。请求时间相差较小时,也推荐您使用加权轮询的方式,因为该实现方式消耗小,无需遍历,效率较高。
加权最小连接数算法
在实际情况中,客户端的请求服务在服务器停留的时间会有较大的差异。随着工作时间的延伸,采用简单的轮询或随机均衡算法,每台服务器上的连接进程数目可能会有极大的不同,导致没有达到真正的负载均衡。最小连接调度是一种动态调度算法,与轮询调度算法相反,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器时,其连接数加一;当连接中止或超时,其连接数减一。加权最小连接数算法(Weighted Least-Connection Scheduling)是在最小连接数调度算法的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求,是在最小连接数调度算法的基础上的改进。
说明:
假设各台后端服务器的权值依次为 wi,当前连接数依次为 ci,依次计算 ci/wi,值最小的后端服务器实例作为下一个分配的实例。如果存在 ci/wi 相同的后端服务器实例,再使用加权轮询的方式调度。
优势:此算法适合长时处理的请求服务,如 FTP 等应用。
劣势:由于接口限制,目前最小连接数和会话保持功能不能同时开启。
适用场景:每个请求所占用的后端时间相差较大的场景。常用于长连接服务。
用户推荐:如果用户需要处理不同的请求,且请求所占用后端时间相差较大,如3ms 和3s 等数量级差距,推荐使用加权最小连接数算法,实现负载均衡。